home *** CD-ROM | disk | FTP | other *** search
/ Aminet 30 / Aminet 30 (1999)(Schatztruhe)[!][Apr 1999].iso / Aminet / dev / lang / SmallEiffel.lha / SmallEiffel / bin_c / compile_to_c46.c < prev    next >
C/C++ Source or Header  |  1998-12-22  |  65KB  |  2,751 lines

  1. /*
  2. -- ANSI C code generated by :
  3. -- SmallEiffel The GNU Eiffel Compiler -- Release (- 0.79)      --
  4. -- Copyright (C), 1994-98 - LORIA - UHP - CRIN - INRIA - FRANCE --
  5. -- Dominique COLNET and Suzanne COLLIN -    colnet@loria.fr     --
  6. --                 http://www.loria.fr/SmallEiffel              --
  7. */
  8. #include "compile_to_c.h"
  9.  
  10.  
  11. T6 r144can_be_dropped(T144* C){
  12. T6 R=0;
  13. /*[IF*/
  14. if(X56can_be_dropped((C)->_target/*4*/)){
  15. R=X51can_be_dropped((C)->_run_feature/*8*/);
  16. }
  17. /*FI]*/
  18. return R;
  19. }
  20.  
  21.  
  22. void r144c_declare_for_old(T144* C){
  23. X56c_declare_for_old((C)->_target/*4*/);
  24. /*[IF*/
  25. /*AF*//*AE*/
  26. /*FI]*/
  27. }
  28.  
  29.  
  30. void r144dca_inline_argument(T144* C,T0* a1){
  31. X56dca_inline_argument((C)->_target/*4*/,a1);
  32. }
  33. /*No:CALL_PREFIX_PLUS.compile_to_c*/
  34.  
  35.  
  36. T2 r144isa_dca_inline_argument(T144* C){
  37. T2 R=0;
  38. /*[IF*/
  39. if(X54is_integer(r144result_type(C))){
  40. R=X56isa_dca_inline_argument((C)->_target/*4*/);
  41. }
  42. /*FI]*/
  43. return R;
  44. }
  45.  
  46.  
  47. void r144run_feature_has_result(T144* C){
  48. /*[IF*/
  49. if((X51result_type((C)->_run_feature/*8*/))==((void*)(NULL))){
  50. r21add_position(X51start_position((C)->_run_feature/*8*/));
  51. r21add_position(((T142*)((C)->_feature_name/*12*/))->_start_position/*8*/);
  52. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms117_53650);
  53. r21fatal_error((T21*)(oBC12eh),b1);
  54. }/*]*/
  55. }
  56. /*FI]*/
  57. }
  58.  
  59.  
  60. T0* r144run_feature_for(T144* C,T0* a1,T0* a2){
  61. T0* R=NULL;
  62. T0* _rc=NULL;
  63. _rc=X54run_class(X56result_type(a1));
  64. R=r24get_rf(((T24*)_rc),a1,(C)->_feature_name/*12*/,a2);
  65. return R;
  66. }
  67. /*No:CALL_PREFIX_PLUS.target*/
  68.  
  69.  
  70. void r144error(T0* a1,T0* a2){
  71. r21add_position(a1);
  72. r21error((T21*)(oBC12eh),a2);
  73. }
  74.  
  75.  
  76. void r144make(T144* C,T0* a1,T0* a2){
  77. {T142*n=malloc(sizeof(*n));
  78. *n=M142;
  79. r142make(n,r144operator(),a1);
  80. C->_feature_name=(T0*)n;
  81. }
  82. C->_target=a2;
  83. }
  84. /*No:CALL_PREFIX_PLUS.us_plus*/
  85. /*No:CALL_PREFIX_PLUS.is_current*/
  86.  
  87.  
  88. void r144mapping_c_arg(T144* C,T0* a1){
  89. T0* _actual_type=NULL;
  90. _actual_type=X54run_type(r144result_type(C));
  91. /*[IF*/
  92. if(X54is_reference(_actual_type)){
  93. /*[IF*/
  94. if(X54is_reference(a1)){
  95. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T144* C1=C;
  96. r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
  97. }/*]*/
  98. /*]*/
  99. }
  100. else{
  101. X54to_expanded(_actual_type);
  102. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  103. T3 b1='\50';
  104. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  105. }/*]*/
  106. /*]*/
  107. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T144* C1=C;
  108. r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
  109. }/*]*/
  110. /*]*/
  111. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  112. T3 b1='\51';
  113. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  114. }/*]*/
  115. /*]*/
  116. }
  117. /*FI]*/
  118. }
  119. else{
  120. /*[IF*/
  121. if(X54is_reference(a1)){
  122. X54to_reference(_actual_type);
  123. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  124. T3 b1='\50';
  125. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  126. }/*]*/
  127. /*]*/
  128. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T144* C1=C;
  129. r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
  130. }/*]*/
  131. /*]*/
  132. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  133. T3 b1='\51';
  134. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  135. }/*]*/
  136. /*]*/
  137. }
  138. else{
  139. /*[IF*/
  140. if(X54need_c_struct(a1)){
  141. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  142. T3 b1='\46';
  143. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  144. }/*]*/
  145. /*]*/
  146. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  147. T3 b1='\50';
  148. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  149. }/*]*/
  150. /*]*/
  151. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T144* C1=C;
  152. r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
  153. }/*]*/
  154. /*]*/
  155. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  156. T3 b1='\51';
  157. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  158. }/*]*/
  159. /*]*/
  160. }
  161. else{
  162. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T144* C1=C;
  163. r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
  164. }/*]*/
  165. /*]*/
  166. }
  167. /*FI]*/
  168. }
  169. /*FI]*/
  170. }
  171. /*FI]*/
  172. }
  173. /*No:CALL_PREFIX_PLUS.is_void*/
  174.  
  175.  
  176. T0* r144operator(void){
  177. T0* R=NULL;
  178. R=((T0*)ms14_44);
  179. return R;
  180. }
  181.  
  182.  
  183. void r144afd_check(T144* C){
  184. T0* _running=NULL;
  185. T0* _rc=NULL;
  186. _rc=X54run_class(X56result_type((C)->_target/*4*/));
  187. _running=(((T24*)_rc))->_running/*12*/;
  188. /*[IF*/
  189. if((_running)==((void*)(NULL))){
  190. r21add_position(X56start_position((C)->_target/*4*/));
  191. /*[IRF3.6append*/{T0* b1=((T0*)ms118_181815);
  192. r7append((T7*)(oBC21explanation),b1);
  193. }/*]*/
  194. /*[IRF3.6append*/{T0* b1=X54run_time_mark((((T24*)_rc))->_current_type/*0*/);
  195. r7append((T7*)(oBC21explanation),b1);
  196. }/*]*/
  197. /*[IRF3.6append*/{T0* b1=((T0*)ms13_20094);
  198. r7append((T7*)(oBC21explanation),b1);
  199. }/*]*/
  200. r21print_as_warning((T21*)(oBC12eh));
  201. r24set_at_run_time(((T24*)_rc));
  202. }
  203.  else if((r328count(((T328*)_running)))>(1)){
  204. r331update((C)->_target/*4*/,(C)->_run_feature/*8*/);
  205. }
  206. /*FI]*/
  207. X56afd_check((C)->_target/*4*/);
  208. /*[IF*/
  209. /*AF*//*AE*/
  210. /*FI]*/
  211. }
  212. /*No:CALL_INFIX_MINUS.static_value*/
  213. /*No:CALL_INFIX_MINUS.call_proc_call_c2c*/
  214. /*No:CALL_INFIX_MINUS.feature_name*/
  215.  
  216.  
  217. void r131finalize(T131* C){
  218. T0* _rf=NULL;
  219. T0* _rc=NULL;
  220. _rf=(C)->_run_feature/*16*/;
  221. _rc=X54run_class(/*X51current_type*/((T0*)(((T324*)_rf))->_current_type/*4*/));
  222. C->_run_feature=r24dynamic((T24*)(r328first((T328*)((((T24*)_rc))->_running/*12*/))),_rf);
  223. }
  224.  
  225.  
  226. T6 r131is_static(T131* C){
  227. T6 R=0;
  228. /*[IF*/
  229. if(X54is_integer(r131result_type(C))){
  230. /*[IF*/
  231. if((X56is_static((C)->_target/*4*/))&&(X56is_static(r131arg1(C)))){
  232. R=1;
  233. C->_static_value_mem=(X56static_value((C)->_target/*4*/))-(X56static_value(r131arg1(C)));
  234. }
  235. /*FI]*/
  236. }
  237. /*FI]*/
  238. return R;
  239. }
  240. /*No:CALL_INFIX_MINUS.is_manifest_string*/
  241.  
  242.  
  243. T0* r131start_position(T131* C){
  244. T0* R=NULL;
  245. R=((T138*)((C)->_feature_name/*12*/))->_start_position/*8*/;
  246. return R;
  247. }
  248. /*No:CALL_INFIX_MINUS.c_simple*/
  249.  
  250.  
  251. T0* r131add_comment(T131* C,T0* a1){
  252. T0* R=NULL;
  253. /*[IF*/
  254. if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r39count(((T39*)((((T82*)a1))->_list/*4*/)))/*)*/)==(0))){
  255. R=(T0*)C;
  256. }
  257. else{
  258. {T230*n=malloc(sizeof(*n));
  259. *n=M230;
  260. r230make(n,(T0*)C,a1);
  261. R=(T0*)n;
  262. }
  263. }
  264. /*FI]*/
  265. return R;
  266. }
  267.  
  268.  
  269. T2 r131to_integer(T131* C){
  270. T2 R=0;
  271. r131error(r131start_position(C),((T0*)ms13_45846));
  272. return R;
  273. }
  274.  
  275.  
  276. T6 r131use_current(T131* C){
  277. T6 R=0;
  278. /*[IF*/
  279. {/*AT*/R=X149use_current((C)->_arguments/*8*/);
  280. }
  281. /*FI]*/
  282. /*[IF*/
  283. if(R){
  284. }
  285.  else if(X56is_current((C)->_target/*4*/)){
  286. R=X51use_current((C)->_run_feature/*16*/);
  287. }
  288. else{
  289. R=X56use_current((C)->_target/*4*/);
  290. }
  291. /*FI]*/
  292. return R;
  293. }
  294.  
  295.  
  296. T0* r131to_runnable(T131* C,T0* a1){
  297. T0* R=NULL;
  298. T0* _rf=NULL;
  299. T0* _tbee=NULL;
  300. T0* _at=NULL;
  301. T0* _tt=NULL;
  302. T0* _a=NULL;
  303. T0* _t=NULL;
  304. _t=r131runnable_expression((C)->_target/*4*/,a1);
  305. _a=r131runnable_args((C)->_arguments/*8*/,a1);
  306. _tt=X56result_type(_t);
  307. _at=X56result_type(r131arg1(C));
  308. /*[IF*/
  309. {/*AT*//*[IF*/
  310. if(X54is_real(_at)){
  311. /*[IF*/
  312. if(X54is_integer(_tt)){
  313. _tbee=X54run_type(_at);
  314. if(NULL!=(_tbee))switch(((T0*)_tbee)->id) {
  315. case 270: case 268: case 266: case 267: case 271: case 264: 
  316. break;
  317. default:
  318. _tbee=NULL;
  319. };{T377*n=malloc(sizeof(*n));
  320. *n=M377;
  321. r377make(n,_t,_tbee);
  322. _t=(T0*)n;
  323. }
  324. }
  325. /*FI]*/
  326. }
  327.  else if(X54is_double(_at)){
  328. /*[IF*/
  329. if((X54is_integer(_tt))||(X54is_real(_tt))){
  330. _tbee=X54run_type(_at);
  331. if(NULL!=(_tbee))switch(((T0*)_tbee)->id) {
  332. case 270: case 268: case 266: case 267: case 271: case 264: 
  333. break;
  334. default:
  335. _tbee=NULL;
  336. };{T377*n=malloc(sizeof(*n));
  337. *n=M377;
  338. r377make(n,_t,_tbee);
  339. _t=(T0*)n;
  340. }
  341. }
  342. /*FI]*/
  343. }
  344. /*FI]*/
  345. }
  346. /*FI]*/
  347. _rf=r131run_feature_for(C,_t,a1);
  348. /*[IF*/
  349. if(((C)->_run_feature/*16*/)==((void*)(NULL))){
  350. C->_target=_t;
  351. C->_arguments=_a;
  352. C->_run_feature=_rf;
  353. r131run_feature_match(C,a1);
  354. R=(T0*)C;
  355. }
  356.  else if(((_t)==((void*)((C)->_target/*4*/)))&&((_a)==((void*)((C)->_arguments/*8*/)))){
  357. R=(T0*)C;
  358. }
  359. else{
  360. {T131*n=malloc(sizeof(*n));
  361. *n=M131;
  362. r131with(n,_t,(C)->_feature_name/*12*/,_a,_rf,a1);
  363. R=(T0*)n;
  364. }
  365. }
  366. /*FI]*/
  367. return R;
  368. }
  369.  
  370.  
  371. void r131compile_to_c_old(T131* C){
  372. X56compile_to_c_old((C)->_target/*4*/);
  373. /*[IF*/
  374. {/*AT*/X149compile_to_c_old((C)->_arguments/*8*/);
  375. }
  376. /*FI]*/
  377. }
  378. /*No:CALL_INFIX_MINUS.is_pre_computable*/
  379. /*No:CALL_INFIX_MINUS.fz_bad_argument*/
  380.  
  381.  
  382. void r131collect_c_tmp(T131* C){
  383. /*[IF*/
  384. if(((C)->_run_feature/*16*/)!=((void*)(NULL))){
  385. X51collect_c_tmp((C)->_run_feature/*16*/);
  386. }
  387. /*FI]*/
  388. X56collect_c_tmp((C)->_target/*4*/);
  389. /*[IF*/
  390. if(((C)->_arguments/*8*/)!=((void*)(NULL))){
  391. X149collect_c_tmp((C)->_arguments/*8*/);
  392. }
  393. /*FI]*/
  394. }
  395. /*No:CALL_INFIX_MINUS.fz_iinaiv*/
  396.  
  397.  
  398. T0* r131result_type(T131* C){
  399. T0* R=NULL;
  400. T0* _tla=NULL;
  401. R=X51result_type((C)->_run_feature/*16*/);
  402. /*[IF*/
  403. if(X54is_like_current(R)){
  404. R=/*X51current_type*/((T0*)((T324*)((C)->_run_feature/*16*/))->_current_type/*4*/);
  405. }
  406. else{
  407. _tla=R;
  408. if(NULL!=(_tla))switch(((T0*)_tla)->id) {
  409. case 258: 
  410. break;
  411. default:
  412. _tla=NULL;
  413. };/*[IF*/
  414. if((_tla)!=((void*)(NULL))){
  415. R=X54run_type(X56result_type(r131arg1(C)));
  416. }
  417. /*FI]*/
  418. }
  419. /*FI]*/
  420. return R;
  421. }
  422. /*No:CALL_INFIX_MINUS.static_value_mem*/
  423. /*No:CALL_INFIX_MINUS.run_feature*/
  424.  
  425.  
  426. T0* r131runnable_args(T0* a1,T0* a2){
  427. T0* R=NULL;
  428. R=X149to_runnable(a1,a2);
  429. /*[IF*/
  430. if((R)==((void*)(NULL))){
  431. r21add_position(X149start_position(a1));
  432. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms13_13065);
  433. r21fatal_error((T21*)(oBC12eh),b1);
  434. }/*]*/
  435. }
  436. /*FI]*/
  437. return R;
  438. }
  439. /*No:CALL_INFIX_MINUS.fz_07*/
  440. /*No:CALL_INFIX_MINUS.arg_count*/
  441.  
  442.  
  443. void r131with(T131* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
  444. C->_target=a1;
  445. C->_feature_name=a2;
  446. C->_arguments=a3;
  447. C->_run_feature=a4;
  448. r131run_feature_match(C,a5);
  449. }
  450. /*No:CALL_INFIX_MINUS.is_result*/
  451. /*No:CALL_INFIX_MINUS.fatal_error*/
  452.  
  453.  
  454. void r131mapping_c_target(T131* C,T0* a1){
  455. T0* _actual_type=NULL;
  456. T6 _flag=0;
  457. _flag=r25call_invariant_start(a1);
  458. _actual_type=X54run_type(r131result_type(C));
  459. /*[IF*/
  460. if(X54is_reference(_actual_type)){
  461. /*[IF*/
  462. if(X54is_reference(a1)){
  463. X54mapping_cast(a1);
  464. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  465. T3 b1='\50';
  466. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  467. }/*]*/
  468. /*]*/
  469. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T131* C1=C;
  470. r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
  471. }/*]*/
  472. /*]*/
  473. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  474. T3 b1='\51';
  475. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  476. }/*]*/
  477. /*]*/
  478. }
  479. else{
  480. X54to_expanded(_actual_type);
  481. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  482. T3 b1='\50';
  483. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  484. }/*]*/
  485. /*]*/
  486. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T131* C1=C;
  487. r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
  488. }/*]*/
  489. /*]*/
  490. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  491. T3 b1='\51';
  492. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  493. }/*]*/
  494. /*]*/
  495. }
  496. /*FI]*/
  497. }
  498. else{
  499. /*[IF*/
  500. if(X54is_reference(a1)){
  501. X54to_reference(_actual_type);
  502. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  503. T3 b1='\50';
  504. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  505. }/*]*/
  506. /*]*/
  507. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T131* C1=C;
  508. r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
  509. }/*]*/
  510. /*]*/
  511. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  512. T3 b1='\51';
  513. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  514. }/*]*/
  515. /*]*/
  516. }
  517. else{
  518. /*[IF*/
  519. if(X54need_c_struct(a1)){
  520. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  521. T3 b1='\46';
  522. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  523. }/*]*/
  524. /*]*/
  525. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  526. T3 b1='\50';
  527. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  528. }/*]*/
  529. /*]*/
  530. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T131* C1=C;
  531. r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
  532. }/*]*/
  533. /*]*/
  534. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  535. T3 b1='\51';
  536. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  537. }/*]*/
  538. /*]*/
  539. }
  540. else{
  541. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T131* C1=C;
  542. r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
  543. }/*]*/
  544. /*]*/
  545. }
  546. /*FI]*/
  547. }
  548. /*FI]*/
  549. }
  550. /*FI]*/
  551. /*[IF*/
  552. if(_flag){
  553. /*[IRF3.2call_invariant_end*//*[IRF3.6put_character*/{T45* C1=(T45*)(oBC25out_c);
  554. T3 b1='\51';
  555. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  556. }/*]*/
  557. /*]*/
  558. }
  559. /*FI]*/
  560. }
  561. /*No:CALL_INFIX_MINUS.us_minus*/
  562.  
  563.  
  564. void r131run_feature_match(T131* C,T0* a1){
  565. r131run_feature_has_result(C);
  566. X149match_with((C)->_arguments/*8*/,(C)->_run_feature/*16*/,a1);
  567. }
  568. /*No:CALL_INFIX_MINUS.arguments*/
  569.  
  570.  
  571. T0* r131runnable_expression(T0* a1,T0* a2){
  572. T0* R=NULL;
  573. R=X56to_runnable(a1,a2);
  574. /*[IF*/
  575. if((R)==((void*)(NULL))){
  576. r21add_position(X56start_position(a1));
  577. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms118_16515);
  578. r21fatal_error((T21*)(oBC12eh),b1);
  579. }/*]*/
  580. }
  581. /*FI]*/
  582. return R;
  583. }
  584. /*No:CALL_INFIX_MINUS.can_be_dropped*/
  585.  
  586.  
  587. void r131c_declare_for_old(T131* C){
  588. X56c_declare_for_old((C)->_target/*4*/);
  589. /*[IF*/
  590. {/*AT*/X149c_declare_for_old((C)->_arguments/*8*/);
  591. }
  592. /*FI]*/
  593. }
  594. /*No:CALL_INFIX_MINUS.implicit_cast*/
  595.  
  596.  
  597. void r131dca_inline_argument(T131* C,T0* a1){
  598. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  599. T3 b1='\50';
  600. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  601. }/*]*/
  602. /*]*/
  603. X56dca_inline_argument((C)->_target/*4*/,a1);
  604. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  605. T3 b1='\51';
  606. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  607. }/*]*/
  608. /*]*/
  609. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  610. T3 b1='\55';
  611. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  612. }/*]*/
  613. /*]*/
  614. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  615. T3 b1='\50';
  616. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  617. }/*]*/
  618. /*]*/
  619. X56dca_inline_argument(r131arg1(C),a1);
  620. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  621. T3 b1='\51';
  622. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  623. }/*]*/
  624. /*]*/
  625. }
  626. /*No:CALL_INFIX_MINUS.compile_to_c*/
  627.  
  628.  
  629. T2 r131isa_dca_inline_argument(T131* C){
  630. T2 R=0;
  631. R=X56isa_dca_inline_argument((C)->_target/*4*/);
  632. /*[IF*/
  633. if((R)==(-(1))){
  634. R=X56isa_dca_inline_argument(r131arg1(C));
  635. }
  636.  else if((R)>(0)){
  637. /*[IF*/
  638. if((X56isa_dca_inline_argument(r131arg1(C)))>=(0)){
  639. R=0;
  640. }
  641. /*FI]*/
  642. }
  643. /*FI]*/
  644. return R;
  645. }
  646.  
  647.  
  648. T0* r131arg1(T131* C){
  649. T0* R=NULL;
  650. R=/*X149first*/((T0*)/*(IRF4.3first*/((T149*)((C)->_arguments/*8*/))->_first_one/*4*//*)*/);
  651. return R;
  652. }
  653.  
  654.  
  655. void r131run_feature_has_result(T131* C){
  656. /*[IF*/
  657. if((X51result_type((C)->_run_feature/*16*/))==((void*)(NULL))){
  658. r21add_position(X51start_position((C)->_run_feature/*16*/));
  659. r21add_position(((T138*)((C)->_feature_name/*12*/))->_start_position/*8*/);
  660. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms117_53650);
  661. r21fatal_error((T21*)(oBC12eh),b1);
  662. }/*]*/
  663. }
  664. /*FI]*/
  665. }
  666.  
  667.  
  668. T0* r131run_feature_for(T131* C,T0* a1,T0* a2){
  669. T0* R=NULL;
  670. T0* _rc=NULL;
  671. _rc=X54run_class(X56result_type(a1));
  672. R=r24get_rf(((T24*)_rc),a1,(C)->_feature_name/*12*/,a2);
  673. return R;
  674. }
  675. /*No:CALL_INFIX_MINUS.target*/
  676.  
  677.  
  678. void r131error(T0* a1,T0* a2){
  679. r21add_position(a1);
  680. r21error((T21*)(oBC12eh),a2);
  681. }
  682.  
  683.  
  684. void r131make(T131* C,T0* a1,T0* a2,T0* a3){
  685. C->_target=a1;
  686. {T138*n=malloc(sizeof(*n));
  687. *n=M138;
  688. r138make(n,r131operator(),a2);
  689. C->_feature_name=(T0*)n;
  690. }
  691. {T149*n=malloc(sizeof(*n));
  692. *n=M149;
  693. /*[IRF3.3make_1*/((((T149*)(n)))->_first_one)=(a3);
  694. /*]*/
  695. C->_arguments=(T0*)n;
  696. }
  697. }
  698. /*No:CALL_INFIX_MINUS.is_current*/
  699.  
  700.  
  701. void r131mapping_c_arg(T131* C,T0* a1){
  702. T0* _actual_type=NULL;
  703. _actual_type=X54run_type(r131result_type(C));
  704. /*[IF*/
  705. if(X54is_reference(_actual_type)){
  706. /*[IF*/
  707. if(X54is_reference(a1)){
  708. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T131* C1=C;
  709. r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
  710. }/*]*/
  711. /*]*/
  712. }
  713. else{
  714. X54to_expanded(_actual_type);
  715. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  716. T3 b1='\50';
  717. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  718. }/*]*/
  719. /*]*/
  720. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T131* C1=C;
  721. r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
  722. }/*]*/
  723. /*]*/
  724. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  725. T3 b1='\51';
  726. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  727. }/*]*/
  728. /*]*/
  729. }
  730. /*FI]*/
  731. }
  732. else{
  733. /*[IF*/
  734. if(X54is_reference(a1)){
  735. X54to_reference(_actual_type);
  736. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  737. T3 b1='\50';
  738. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  739. }/*]*/
  740. /*]*/
  741. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T131* C1=C;
  742. r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
  743. }/*]*/
  744. /*]*/
  745. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  746. T3 b1='\51';
  747. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  748. }/*]*/
  749. /*]*/
  750. }
  751. else{
  752. /*[IF*/
  753. if(X54need_c_struct(a1)){
  754. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  755. T3 b1='\46';
  756. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  757. }/*]*/
  758. /*]*/
  759. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  760. T3 b1='\50';
  761. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  762. }/*]*/
  763. /*]*/
  764. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T131* C1=C;
  765. r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
  766. }/*]*/
  767. /*]*/
  768. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  769. T3 b1='\51';
  770. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  771. }/*]*/
  772. /*]*/
  773. }
  774. else{
  775. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T131* C1=C;
  776. r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
  777. }/*]*/
  778. /*]*/
  779. }
  780. /*FI]*/
  781. }
  782. /*FI]*/
  783. }
  784. /*FI]*/
  785. }
  786. /*No:CALL_INFIX_MINUS.is_void*/
  787.  
  788.  
  789. T0* r131operator(void){
  790. T0* R=NULL;
  791. R=((T0*)ms14_46);
  792. return R;
  793. }
  794.  
  795.  
  796. void r131afd_check(T131* C){
  797. T0* _running=NULL;
  798. T0* _rc=NULL;
  799. _rc=X54run_class(X56result_type((C)->_target/*4*/));
  800. _running=(((T24*)_rc))->_running/*12*/;
  801. /*[IF*/
  802. if((_running)==((void*)(NULL))){
  803. r21add_position(X56start_position((C)->_target/*4*/));
  804. /*[IRF3.6append*/{T0* b1=((T0*)ms118_181815);
  805. r7append((T7*)(oBC21explanation),b1);
  806. }/*]*/
  807. /*[IRF3.6append*/{T0* b1=X54run_time_mark((((T24*)_rc))->_current_type/*0*/);
  808. r7append((T7*)(oBC21explanation),b1);
  809. }/*]*/
  810. /*[IRF3.6append*/{T0* b1=((T0*)ms13_20094);
  811. r7append((T7*)(oBC21explanation),b1);
  812. }/*]*/
  813. r21print_as_warning((T21*)(oBC12eh));
  814. r24set_at_run_time(((T24*)_rc));
  815. }
  816.  else if((r328count(((T328*)_running)))>(1)){
  817. r331update((C)->_target/*4*/,(C)->_run_feature/*16*/);
  818. }
  819. /*FI]*/
  820. X56afd_check((C)->_target/*4*/);
  821. /*[IF*/
  822. {/*AT*/X149afd_check((C)->_arguments/*8*/);
  823. }
  824. /*FI]*/
  825. }
  826. /*No:ADDRESS_OF.static_value*/
  827. /*No:ADDRESS_OF.feature_name*/
  828. /*No:ADDRESS_OF.is_static*/
  829. /*No:ADDRESS_OF.is_manifest_string*/
  830.  
  831.  
  832. T0* r160start_position(T160* C){
  833. T0* R=NULL;
  834. R=X83start_position((C)->_feature_name/*4*/);
  835. return R;
  836. }
  837. /*No:ADDRESS_OF.c_simple*/
  838.  
  839.  
  840. T0* r160add_comment(T160* C,T0* a1){
  841. T0* R=NULL;
  842. /*[IF*/
  843. if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r39count(((T39*)((((T82*)a1))->_list/*4*/)))/*)*/)==(0))){
  844. R=(T0*)C;
  845. }
  846. else{
  847. {T230*n=malloc(sizeof(*n));
  848. *n=M230;
  849. r230make(n,(T0*)C,a1);
  850. R=(T0*)n;
  851. }
  852. }
  853. /*FI]*/
  854. return R;
  855. }
  856.  
  857.  
  858. T2 r160to_integer(T160* C){
  859. T2 R=0;
  860. r160error(r160start_position(C),((T0*)ms13_45846));
  861. return R;
  862. }
  863. /*No:ADDRESS_OF.use_current*/
  864.  
  865.  
  866. T0* r160to_runnable(T160* C,T0* a1){
  867. T0* R=NULL;
  868. /*[IF*/
  869. if(((C)->_current_type/*8*/)==((void*)(NULL))){
  870. C->_current_type=a1;
  871. C->_run_feature=r24get_rf_with((T24*)(X54run_class(a1)),(C)->_feature_name/*4*/);
  872. /*[IF*/
  873. if(((C)->_run_feature/*12*/)==((void*)(NULL))){
  874. r160error(r160start_position(C),((T0*)ms160_24192));
  875. }
  876. else{
  877. r349register_for((T0*)C);
  878. }
  879. /*FI]*/
  880. R=(T0*)C;
  881. }
  882. else{
  883. {T160*n=malloc(sizeof(*n));
  884. *n=M160;
  885. /*[IRF3.3make*/((((T160*)(n)))->_feature_name)=((C)->_feature_name/*4*/);
  886. /*]*/
  887. R=(T0*)n;
  888. }
  889. R=r160to_runnable(((T160*)R),a1);
  890. }
  891. /*FI]*/
  892. return R;
  893. }
  894. /*No:ADDRESS_OF.compile_to_c_old*/
  895. /*No:ADDRESS_OF.is_pre_computable*/
  896. /*No:ADDRESS_OF.collect_c_tmp*/
  897. /*No:ADDRESS_OF.fz_iinaiv*/
  898. /*No:ADDRESS_OF.result_type*/
  899. /*No:ADDRESS_OF.run_feature*/
  900. /*No:ADDRESS_OF.is_result*/
  901. int fBC12type_pointer=0;
  902. T0*oBC12type_pointer=NULL;
  903.  
  904.  
  905. T0* r160type_pointer(void){
  906. if(fBC12type_pointer==0){
  907. fBC12type_pointer=1;
  908. {T270*n=malloc(sizeof(*n));
  909. *n=M270;
  910. r270make(n,NULL);
  911. oBC12type_pointer=(T0*)n;
  912. }
  913. }
  914. return oBC12type_pointer;}
  915. /*No:ADDRESS_OF.mapping_c_target*/
  916. /*No:ADDRESS_OF.can_be_dropped*/
  917. /*No:ADDRESS_OF.c_declare_for_old*/
  918. /*No:ADDRESS_OF.dca_inline_argument*/
  919.  
  920.  
  921. void r160compile_to_c(T160* C){
  922. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms160_9906));
  923. /*]*/
  924. X51address_of_c_mapping((C)->_run_feature/*12*/);
  925. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  926. T3 b1='\51';
  927. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  928. }/*]*/
  929. /*]*/
  930. }
  931. /*No:ADDRESS_OF.isa_dca_inline_argument*/
  932. /*No:ADDRESS_OF.current_type*/
  933.  
  934.  
  935. void r160error(T0* a1,T0* a2){
  936. r21add_position(a1);
  937. r21error((T21*)(oBC12eh),a2);
  938. }
  939. /*No:ADDRESS_OF.make*/
  940. /*No:ADDRESS_OF.is_current*/
  941. /*No:ADDRESS_OF.mapping_c_arg*/
  942. /*No:ADDRESS_OF.is_void*/
  943. /*No:ADDRESS_OF.afd_check*/
  944. /*No:CST_ATT_CHARACTER.base_class*/
  945. /*No:CST_ATT_CHARACTER.value_mem*/
  946.  
  947.  
  948. T0* r206start_position(T206* C){
  949. T0* R=NULL;
  950. R=X83start_position(/*(IRF4.6first_name*/r85item(((T85*)((C)->_names/*8*/)),1)/*)*/);
  951. return R;
  952. }
  953.  
  954.  
  955. T6 r206is_merge_with(T206* C,T0* a1,T0* a2){
  956. T6 R=0;
  957. R=1;
  958. /*[IF*/
  959. if(((C)->_result_type/*20*/)!=((void*)(X93result_type(a1)))){
  960. /*[IF*/
  961. if((((C)->_result_type/*20*/)==((void*)(NULL)))||((X93result_type(a1))==((void*)(NULL)))){
  962. R=0;
  963. }
  964. /*FI]*/
  965. }
  966. /*FI]*/
  967. /*[IF*/
  968. if((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X93arguments(a1)))){
  969. /*[IF*/
  970. {/*AT*/R=0;
  971. }
  972. /*FI]*/
  973. }
  974. /*FI]*/
  975. /*[IF*/
  976. if(R){
  977. /*[IF*/
  978. if(((C)->_result_type/*20*/)!=((void*)(NULL))){
  979. R=X54is_a_in((C)->_result_type/*20*/,X93result_type(a1),a2);
  980. }
  981. /*FI]*/
  982. /*[IF*/
  983. if((R)&&((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(NULL)))){
  984. R=r187is_a_in((T187*)(/*(IRF4.1arguments*/NULL/*)*/),X93arguments(a1),a2);
  985. }
  986. /*FI]*/
  987. /*[IF*/
  988. if(!(R)){
  989. R=1;
  990. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC21explanation))))->_count)=(0);
  991. /*]*/
  992. /*[IRF3.3clear*/((((T69*)((T69*)(oBC21positions))))->_upper)=(-(1));
  993. /*]*/
  994. /*]*/
  995. /*[IF*/
  996. if(((C)->_result_type/*20*/)!=((void*)(NULL))){
  997. R=X54is_a_in(X93result_type(a1),(C)->_result_type/*20*/,a2);
  998. }
  999. /*FI]*/
  1000. /*[IF*/
  1001. if((R)&&((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(NULL)))){
  1002. R=r187is_a_in((T187*)(X93arguments(a1)),/*(IRF4.1arguments*/NULL/*)*/,a2);
  1003. }
  1004. /*FI]*/
  1005. }
  1006. /*FI]*/
  1007. }
  1008. /*FI]*/
  1009. /*[IF*/
  1010. if(R){
  1011. r206merge_header_comments(C,a1);
  1012. }
  1013. /*FI]*/
  1014. return R;
  1015. }
  1016. /*No:CST_ATT_CHARACTER.first_name*/
  1017. /*No:CST_ATT_CHARACTER.em1*/
  1018. /*No:CST_ATT_CHARACTER.header_comment*/
  1019. /*No:CST_ATT_CHARACTER.names*/
  1020. /*No:CST_ATT_CHARACTER.result_type*/
  1021. /*No:CST_ATT_CHARACTER.code_require*/
  1022. /*No:CST_ATT_CHARACTER.make_e_feature*/
  1023.  
  1024.  
  1025. void r206add_into(T206* C,T0* a1){
  1026. T0* _fn=NULL;
  1027. T2 _i=0;
  1028. C->_base_class=r70base_class((T70*)(X83start_position(r85item((T85*)((C)->_names/*8*/),1))));
  1029. _i=1;
  1030. while (!((_i)>(r85count((T85*)((C)->_names/*8*/))))) {
  1031. _fn=r85item((T85*)((C)->_names/*8*/),_i);
  1032. /*[IF*/
  1033. if(r92has(((T92*)a1),X83to_key(_fn))){
  1034. _fn=/*X93first_name*/((T0*)/*(IRF4.6first_name*/r85item(((T85*)(((T199*)(r92at(((T92*)a1),X83to_key(_fn))))->_names/*8*/)),1)/*)*/);
  1035. r21add_position(X83start_position(_fn));
  1036. r21add_position(X83start_position(r85item((T85*)((C)->_names/*8*/),_i)));
  1037. r21error((T21*)(oBC12eh),((T0*)ms93_41905));
  1038. /*[IRF3.6append*/{T0* b1=X83to_string(_fn);
  1039. r7append((T7*)(oBC21explanation),b1);
  1040. }/*]*/
  1041. r21error((T21*)(oBC12eh),((T0*)ms13_47));
  1042. }
  1043. else{
  1044. r92put(((T92*)a1),(T0*)C,X83to_key(_fn));
  1045. }
  1046. /*FI]*/
  1047. _i=(_i)+(1);
  1048. }
  1049. }
  1050.  
  1051.  
  1052. T6 r206can_hide(T206* C,T0* a1,T0* a2){
  1053. T6 R=0;
  1054. /*[IF*/
  1055. if(((C)->_result_type/*20*/)!=((void*)(X93result_type(a1)))){
  1056. /*[IF*/
  1057. if((((C)->_result_type/*20*/)==((void*)(NULL)))||((X93result_type(a1))==((void*)(NULL)))){
  1058. r21add_position(X93start_position(a1));
  1059. r206error(r206start_position(C),((T0*)ms93_64647));
  1060. }
  1061. /*FI]*/
  1062. }
  1063. /*FI]*/
  1064. /*[IF*/
  1065. if((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X93arguments(a1)))){
  1066. /*[IF*/
  1067. {/*AT*/r21add_position(X93start_position(a1));
  1068. r206error(r206start_position(C),((T0*)ms93_83182));
  1069. }
  1070. /*FI]*/
  1071. }
  1072. /*FI]*/
  1073. /*[IF*/
  1074. if((/*(IRF4.9nb_errors*/((T21*)(oBC12eh))->_nb_errors/*4*//*)*/)==(0)){
  1075. /*[IF*/
  1076. if(((C)->_result_type/*20*/)!=((void*)(NULL))){
  1077. /*[IF*/
  1078. if(!(X54is_a_in((C)->_result_type/*20*/,X93result_type(a1),a2))){
  1079. /*[IRF3.6append*/{T0* b1=((T0*)ms93_54285);
  1080. r7append((T7*)(oBC21explanation),b1);
  1081. }/*]*/
  1082. /*[IRF3.6append*/{T0* b1=X54run_time_mark((((T24*)a2))->_current_type/*0*/);
  1083. r7append((T7*)(oBC21explanation),b1);
  1084. }/*]*/
  1085. r21error((T21*)(oBC12eh),((T0*)ms13_47));
  1086. }
  1087. /*FI]*/
  1088. }
  1089. /*FI]*/
  1090. }
  1091. /*FI]*/
  1092. /*[IF*/
  1093. if((/*(IRF4.9nb_errors*/((T21*)(oBC12eh))->_nb_errors/*4*//*)*/)==(0)){
  1094. /*[IF*/
  1095. /*AF*//*AE*/
  1096. /*FI]*/
  1097. }
  1098. /*FI]*/
  1099. R=(/*(IRF4.9nb_errors*/((T21*)(oBC12eh))->_nb_errors/*4*//*)*/)==(0);
  1100. /*[IF*/
  1101. if(R){
  1102. r206merge_header_comments(C,a1);
  1103. }
  1104. /*FI]*/
  1105. return R;
  1106. }
  1107. /*No:CST_ATT_CHARACTER.ensure_assertion*/
  1108.  
  1109.  
  1110. T0* r206try_to_undefine(T206* C,T0* a1,T0* a2){
  1111. T0* R=NULL;
  1112. T0* _fn2=NULL;
  1113. r21add_position(X83start_position(a1));
  1114. _fn2=r85feature_name((T85*)((C)->_names/*8*/),X83to_key(a1));
  1115. /*[IF*/
  1116. if((_fn2)!=((void*)(NULL))){
  1117. X83undefine_in(_fn2,a2);
  1118. }
  1119. /*FI]*/
  1120. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC21explanation))))->_count)=(0);
  1121. /*]*/
  1122. /*[IRF3.3clear*/((((T69*)((T69*)(oBC21positions))))->_upper)=(-(1));
  1123. /*]*/
  1124. /*]*/
  1125. R=r206try_to_undefine_aux(C,a1,a2);
  1126. /*[IF*/
  1127. if((R)!=((void*)(NULL))){
  1128. /*X284set_clients*//*[IRF3.3set_clients*/((((T287*)(((T287*)R))))->_clients)=((C)->_clients/*16*/);
  1129. /*]*/
  1130. r206merge_header_comments(C,R);
  1131. }
  1132. else{
  1133. r63fatal_undefine(((T63*)a2),a1);
  1134. }
  1135. /*FI]*/
  1136. return R;
  1137. }
  1138. /*No:CST_ATT_CHARACTER.is_deferred*/
  1139. /*No:CST_ATT_CHARACTER.set_clients*/
  1140. /*No:CST_ATT_CHARACTER.value*/
  1141. /*No:CST_ATT_CHARACTER.nb_errors*/
  1142.  
  1143.  
  1144. T0* r206to_run_feature(T206* C,T0* a1,T0* a2){
  1145. T0* R=NULL;
  1146. T0* _rc=NULL;
  1147. _rc=X54run_class(a1);
  1148. R=r24at(((T24*)_rc),a2);
  1149. if(NULL!=(R))switch(((T0*)R)->id) {
  1150. case 376: 
  1151. break;
  1152. default:
  1153. R=NULL;
  1154. };/*[IF*/
  1155. if((R)==((void*)(NULL))){
  1156. {T376*n=malloc(sizeof(*n));
  1157. *n=M376;
  1158. r376make(n,a1,a2,(T0*)C);
  1159. R=(T0*)n;
  1160. }
  1161. }
  1162. /*FI]*/
  1163. return R;
  1164. }
  1165.  
  1166.  
  1167. void r206merge_header_comments(T206* C,T0* a1){
  1168. /*[IF*/
  1169. if(((T22*)(oBC12small_eiffel))->_short_flag/*8*/){
  1170. /*[IF*/
  1171. if(((C)->_header_comment/*12*/)==((void*)(NULL))){
  1172. C->_header_comment=/*X93header_comment*/((T0*)(((T199*)a1))->_header_comment/*12*/);
  1173. }
  1174.  else if((/*X93header_comment*/((T0*)(((T199*)a1))->_header_comment/*12*/))==((void*)(NULL))){
  1175. X93set_header_comment(a1,(C)->_header_comment/*12*/);
  1176. }
  1177. /*FI]*/
  1178. }
  1179. /*FI]*/
  1180. }
  1181. /*No:CST_ATT_CHARACTER.arguments*/
  1182. /*No:CST_ATT_CHARACTER.require_assertion*/
  1183.  
  1184.  
  1185. T0* r206try_to_undefine_aux(T206* C,T0* a1,T0* a2){
  1186. T0* R=NULL;
  1187. r21add_position(r206start_position(C));
  1188. r206error(X83start_position(a1),((T0*)ms201_99414));
  1189. r63fatal_undefine(((T63*)a2),a1);
  1190. return R;
  1191. }
  1192. /*No:CST_ATT_CHARACTER.fz_dot*/
  1193. /*No:CST_ATT_CHARACTER.stupid_switch*/
  1194.  
  1195.  
  1196. void r206error(T0* a1,T0* a2){
  1197. r21add_position(a1);
  1198. r21error((T21*)(oBC12eh),a2);
  1199. }
  1200.  
  1201.  
  1202. void r206make(T206* C,T0* a1,T0* a2,T0* a3){
  1203. /*[IRF3.3make_e_feature*/((((T206*)(C)))->_names)=(a1);
  1204. /*]*/
  1205. C->_result_type=a2;
  1206. C->_value_mem=a3;
  1207. }
  1208.  
  1209.  
  1210. void r206collect_for(T2 a1){
  1211. T0* _er=NULL;
  1212. /*[IF*/
  1213. if((a1)==(1)){
  1214. _er=/*(IRF4.1require_assertion*/NULL/*)*/;
  1215. /*[IF*/
  1216. if((_er)!=((void*)(NULL))){
  1217. /*[IF*/
  1218. if(!(r358fast_has((T358*)(oBC93require_collector),_er))){
  1219. r358add_last((T358*)(oBC93require_collector),_er);
  1220. }
  1221. /*FI]*/
  1222. }
  1223. /*FI]*/
  1224. }
  1225. else{
  1226. /*[IF*/
  1227. /*AF*//*AE*/
  1228. /*FI]*/
  1229. }
  1230. /*FI]*/
  1231. }
  1232. /*No:CST_ATT_CHARACTER.set_header_comment*/
  1233. /*No:CST_ATT_CHARACTER.clients*/
  1234. /*No:TYPE_ANY.fz_null*/
  1235. /*No:TYPE_ANY.fz_void*/
  1236. /*No:TYPE_ANY.start_position*/
  1237.  
  1238.  
  1239. void r259standard_c_print_function(T259* C){
  1240. /*[IF*/
  1241. if(r43no_check((T43*)(oBC12run_control))){
  1242. r24c_print_function((T24*)(r259run_class(C)));
  1243. }
  1244. /*FI]*/
  1245. }
  1246. /*No:TYPE_ANY.used_as_reference*/
  1247.  
  1248.  
  1249. T2 r259id(T259* C){
  1250. T2 R=0;
  1251. R=((T63*)(r259base_class(C)))->_id/*0*/;
  1252. return R;
  1253. }
  1254. /*No:TYPE_ANY.is_user_expanded*/
  1255. /*No:TYPE_ANY.is_pointer*/
  1256.  
  1257.  
  1258. T0* r259to_runnable(T259* C,T0* a1){
  1259. T0* R=NULL;
  1260. R=(T0*)C;
  1261. r259check_type(C);
  1262. return R;
  1263. }
  1264. /*No:TYPE_ANY.c_initialize_in*/
  1265. /*No:TYPE_ANY.gc_define1*/
  1266. /*No:TYPE_ANY.to_reference*/
  1267.  
  1268.  
  1269. void r259gc_mark_in(T259* C,T0* a1){
  1270. r7append(((T7*)a1),((T0*)ms13_8869));
  1271. r2append_in(r259id(C),a1);
  1272. }
  1273.  
  1274.  
  1275. T0* r259run_class(T259* C){
  1276. T0* R=NULL;
  1277. R=r22run_class((T0*)C);
  1278. return R;
  1279. }
  1280. /*No:TYPE_ANY.c_header_pass2*/
  1281.  
  1282.  
  1283. void r259c_header_pass4(T259* C){
  1284. /*[IF*/
  1285. if(r259need_c_struct(C)){
  1286. r259standard_c_struct(C);
  1287. }
  1288. /*FI]*/
  1289. r259standard_c_object_model(C);
  1290. r259standard_c_print_function(C);
  1291. }
  1292. /*No:TYPE_ANY.is_like_current*/
  1293. /*No:TYPE_ANY.is_bit*/
  1294.  
  1295.  
  1296. void r259gc_store_in(T259* C,T0* a1){
  1297. r7append(((T7*)a1),((T0*)ms54_2860));
  1298. r2append_in(r259id(C),a1);
  1299. }
  1300. /*No:TYPE_ANY.smallest_ancestor*/
  1301.  
  1302.  
  1303. void r259gc_info_nb_in(T259* C,T0* a1){
  1304. r7append(((T7*)a1),((T0*)ms54_15070));
  1305. r2append_in(r259id(C),a1);
  1306. }
  1307. /*No:TYPE_ANY.fz_eq_h*/
  1308.  
  1309.  
  1310. T0* r259run_time_mark(void){
  1311. T0* R=NULL;
  1312. R=((T0*)ms14_714);
  1313. return R;
  1314. }
  1315. /*No:TYPE_ANY.is_expanded*/
  1316.  
  1317.  
  1318. void r259standard_gc_define2(T259* C){
  1319. T6 _gc_check_id=0;
  1320. T2 _rcid=0;
  1321. T0* _rc=NULL;
  1322. _rc=r259run_class(C);
  1323. _rcid=(((T24*)_rc))->_id/*4*/;
  1324. r7copy((T7*)(((T0*)ms54_785024a)),((T0*)ms13_1776a));
  1325. r7extend((T7*)(((T0*)ms54_785024a)),'\40');
  1326. r7append((T7*)(((T0*)ms54_785024a)),((T0*)ms13_11536));
  1327. r2append_in(_rcid,((T0*)ms54_785024a));
  1328. r7append((T7*)(((T0*)ms54_785024a)),((T0*)ms54_6480));
  1329. r7copy((T7*)(((T0*)ms54_3077376)),((T0*)ms54_410));
  1330. r2append_in(_rcid,((T0*)ms54_3077376));
  1331. r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms54_667749));
  1332. r259gc_store_in(C,((T0*)ms54_3077376));
  1333. r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms54_629541));
  1334. r259gc_free_in(C,((T0*)ms54_3077376));
  1335. r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms13_144));
  1336. r259gc_free_in(C,((T0*)ms54_3077376));
  1337. r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms54_7450784));
  1338. r259gc_free_in(C,((T0*)ms54_3077376));
  1339. r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms13_144));
  1340. r259gc_free_in(C,((T0*)ms54_3077376));
  1341. r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms54_14432));
  1342. r25put_c_function((T25*)(oBC12cpp),((T0*)ms54_785024a),((T0*)ms54_3077376));
  1343. r7copy((T7*)(((T0*)ms54_785024a)),((T0*)ms13_1776a));
  1344. r7extend((T7*)(((T0*)ms54_785024a)),'\40');
  1345. r259gc_mark_in(C,((T0*)ms54_785024a));
  1346. r7append((T7*)(((T0*)ms54_785024a)),((T0*)ms54_254a));
  1347. r2append_in(_rcid,((T0*)ms54_785024a));
  1348. r7append((T7*)(((T0*)ms54_785024a)),((T0*)ms54_600));
  1349. /*[IRF3.3clear*/((((T7*)((T7*)(((T0*)ms54_3077376)))))->_count)=(0);
  1350. /*]*/
  1351. _gc_check_id=(r24is_tagged(((T24*)_rc)))&&(r43no_check((T43*)(oBC12run_control)));
  1352. /*[IF*/
  1353. if(_gc_check_id){
  1354. r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms54_21692));
  1355. r2append_in(_rcid,((T0*)ms54_3077376));
  1356. r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms54_972));
  1357. }
  1358. /*FI]*/
  1359. r24gc_mark_fixed_size(((T24*)_rc),0,((T0*)ms54_3077376));
  1360. /*[IF*/
  1361. if(_gc_check_id){
  1362. r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms54_276));
  1363. }
  1364. /*FI]*/
  1365. r25put_c_function((T25*)(oBC12cpp),((T0*)ms54_785024a),((T0*)ms54_3077376));
  1366. r7copy((T7*)(((T0*)ms54_785024a)),((T0*)ms13_1776a));
  1367. r7extend((T7*)(((T0*)ms54_785024a)),'\40');
  1368. r259gc_align_mark_in(C,((T0*)ms54_785024a));
  1369. r7append((T7*)(((T0*)ms54_785024a)),((T0*)ms54_14720));
  1370. r2append_in(_rcid,((T0*)ms54_785024a));
  1371. r7append((T7*)(((T0*)ms54_785024a)),((T0*)ms54_603));
  1372. /*[IRF3.3clear*/((((T7*)((T7*)(((T0*)ms54_3077376)))))->_count)=(0);
  1373. /*]*/
  1374. r24gc_align_mark_fixed_size(((T24*)_rc),((T0*)ms54_3077376));
  1375. r25put_c_function((T25*)(oBC12cpp),((T0*)ms54_785024a),((T0*)ms54_3077376));
  1376. r7copy((T7*)(((T0*)ms54_785024a)),((T0*)ms54_5436));
  1377. r2append_in(_rcid,((T0*)ms54_785024a));
  1378. r7copy((T7*)(((T0*)ms54_3077376)),((T0*)ms54_455742));
  1379. r2append_in(_rcid,((T0*)ms54_3077376));
  1380. r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms54_78450));
  1381. r2append_in(_rcid,((T0*)ms54_3077376));
  1382. r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms54_345762));
  1383. r2append_in(_rcid,((T0*)ms54_3077376));
  1384. r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms54_1580));
  1385. r25put_extern5((T25*)(oBC12cpp),((T0*)ms54_785024a),((T0*)ms54_3077376));
  1386. /*[IRF3.3clear*/((((T7*)((T7*)(((T0*)ms54_785024a)))))->_count)=(0);
  1387. /*]*/
  1388. r7extend((T7*)(((T0*)ms54_785024a)),'T');
  1389. r2append_in(_rcid,((T0*)ms54_785024a));
  1390. r7extend((T7*)(((T0*)ms54_785024a)),'\52');
  1391. r7append((T7*)(((T0*)ms54_785024a)),((T0*)ms13_1008));
  1392. r2append_in(_rcid,((T0*)ms54_785024a));
  1393. r7append((T7*)(((T0*)ms54_785024a)),((T0*)ms13_4410));
  1394. r7copy((T7*)(((T0*)ms54_3077376)),((T0*)ms13_410));
  1395. r2append_in(_rcid,((T0*)ms54_3077376));
  1396. r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms54_924));
  1397. /*[IF*/
  1398. if(((T330*)(oBC12gc_handler))->_info_flag/*4*/){
  1399. r259gc_info_nb_in(C,((T0*)ms54_3077376));
  1400. r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms54_660));
  1401. }
  1402. /*FI]*/
  1403. r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms54_759));
  1404. r259gc_store_left_in(C,((T0*)ms54_3077376));
  1405. r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms54_1500));
  1406. r259gc_store_left_in(C,((T0*)ms54_3077376));
  1407. r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms54_3900));
  1408. r259gc_store_in(C,((T0*)ms54_3077376));
  1409. r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms54_13425));
  1410. r259gc_free_in(C,((T0*)ms54_3077376));
  1411. r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms54_11209));
  1412. r259gc_free_in(C,((T0*)ms54_3077376));
  1413. r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms13_144));
  1414. r259gc_free_in(C,((T0*)ms54_3077376));
  1415. r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms54_39879));
  1416. r259gc_store_left_in(C,((T0*)ms54_3077376));
  1417. r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms54_2460));
  1418. r259gc_store_left_in(C,((T0*)ms54_3077376));
  1419. r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms54_752));
  1420. r259gc_store_chunk_in(C,((T0*)ms54_3077376));
  1421. r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms54_104196));
  1422. r259gc_store_in(C,((T0*)ms54_3077376));
  1423. r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms54_11970));
  1424. r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms54_11264));
  1425. r259gc_store_chunk_in(C,((T0*)ms54_3077376));
  1426. r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms54_55955));
  1427. r259gc_store_chunk_in(C,((T0*)ms54_3077376));
  1428. r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms13_272a));
  1429. r2append_in(_rcid,((T0*)ms54_3077376));
  1430. r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms13_144));
  1431. r259gc_store_in(C,((T0*)ms54_3077376));
  1432. r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms54_9790aa));
  1433. r259gc_store_chunk_in(C,((T0*)ms54_3077376));
  1434. r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms54_11214aa));
  1435. r259gc_store_left_in(C,((T0*)ms54_3077376));
  1436. r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms13_272a));
  1437. r2append_in(_rcid,((T0*)ms54_3077376));
  1438. r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms54_34360aa));
  1439. r259gc_store_in(C,((T0*)ms54_3077376));
  1440. r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms54_32340));
  1441. r259gc_store_chunk_in(C,((T0*)ms54_3077376));
  1442. r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms54_1433339));
  1443. r259gc_store_chunk_in(C,((T0*)ms54_3077376));
  1444. r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms54_52000));
  1445. r259gc_store_chunk_in(C,((T0*)ms54_3077376));
  1446. r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms54_1305));
  1447. r259gc_store_chunk_in(C,((T0*)ms54_3077376));
  1448. r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms13_272a));
  1449. r2append_in(_rcid,((T0*)ms54_3077376));
  1450. r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms13_144));
  1451. r259gc_store_in(C,((T0*)ms54_3077376));
  1452. r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms54_9790a));
  1453. r259gc_store_chunk_in(C,((T0*)ms54_3077376));
  1454. r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms54_11214a));
  1455. r259gc_store_left_in(C,((T0*)ms54_3077376));
  1456. r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms13_272a));
  1457. r2append_in(_rcid,((T0*)ms54_3077376));
  1458. r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms54_34360a));
  1459. r259gc_store_in(C,((T0*)ms54_3077376));
  1460. r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms54_76164));
  1461. r259gc_free_in(C,((T0*)ms54_3077376));
  1462. r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms54_1800));
  1463. r259gc_free_in(C,((T0*)ms54_3077376));
  1464. r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms13_144));
  1465. r259gc_free_in(C,((T0*)ms54_3077376));
  1466. r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms54_16175));
  1467. r259gc_store_chunk_in(C,((T0*)ms54_3077376));
  1468. r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms54_15246));
  1469. r259gc_store_chunk_in(C,((T0*)ms54_3077376));
  1470. r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms13_272a));
  1471. r2append_in(_rcid,((T0*)ms54_3077376));
  1472. r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms13_144));
  1473. r259gc_store_in(C,((T0*)ms54_3077376));
  1474. r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms54_9790));
  1475. r259gc_store_chunk_in(C,((T0*)ms54_3077376));
  1476. r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms54_11214));
  1477. r259gc_store_left_in(C,((T0*)ms54_3077376));
  1478. r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms13_272a));
  1479. r2append_in(_rcid,((T0*)ms54_3077376));
  1480. r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms54_34360));
  1481. r259gc_store_in(C,((T0*)ms54_3077376));
  1482. r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms54_25650));
  1483. /*[IF*/
  1484. if(r259need_c_struct(C)){
  1485. r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms54_14168));
  1486. r2append_in(_rcid,((T0*)ms54_3077376));
  1487. r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms13_144));
  1488. }
  1489. /*FI]*/
  1490. r7append((T7*)(((T0*)ms54_3077376)),((T0*)ms54_12699));
  1491. r25put_c_function((T25*)(oBC12cpp),((T0*)ms54_785024a),((T0*)ms54_3077376));
  1492. }
  1493. /*No:TYPE_ANY.gc_info_in*/
  1494. /*No:TYPE_ANY.gc_define2*/
  1495. /*No:TYPE_ANY.is_like_feature*/
  1496. /*No:TYPE_ANY.fz_dot*/
  1497.  
  1498.  
  1499. T6 r259is_a(T259* C,T0* a1){
  1500. T6 R=0;
  1501. /*[IF*/
  1502. if(X54is_any(a1)){
  1503. R=1;
  1504. }
  1505.  else if(X54is_none(a1)){
  1506. }
  1507. else{
  1508. R=r63is_subclass_of((T63*)(r259base_class(C)),X54base_class(a1));
  1509. }
  1510. /*FI]*/
  1511. /*[IF*/
  1512. if(!(R)){
  1513. r21add_type((T0*)C,((T0*)ms13_17730));
  1514. r21add_type(a1,((T0*)ms13_47));
  1515. }
  1516. /*FI]*/
  1517. return R;
  1518. }
  1519.  
  1520.  
  1521. void r259gc_free_in(T259* C,T0* a1){
  1522. r7append(((T7*)a1),((T0*)ms54_8645));
  1523. r2append_in(r259id(C),a1);
  1524. }
  1525. /*No:TYPE_ANY.c_initialize*/
  1526. /*No:TYPE_ANY.is_character*/
  1527.  
  1528.  
  1529. T0* r259written_mark(void){
  1530. T0* R=NULL;
  1531. R=((T0*)ms14_714);
  1532. return R;
  1533. }
  1534.  
  1535.  
  1536. void r259error(T0* a1,T0* a2){
  1537. r21add_position(a1);
  1538. r21error((T21*)(oBC12eh),a2);
  1539. }
  1540.  
  1541.  
  1542. void r259make(T259* C,T0* a1){
  1543. {T64*n=malloc(sizeof(*n));
  1544. *n=M64;
  1545. r64make(n,((T0*)ms14_714),a1);
  1546. C->_base_class_name=(T0*)n;
  1547. }
  1548. }
  1549.  
  1550.  
  1551. void r259demangling_in(T0* a1){
  1552. /*[IF*/
  1553. {/*AT*/r7extend(((T7*)a1),'R');
  1554. }
  1555. /*FI]*/
  1556. r7extend(((T7*)a1),'\40');
  1557. r7append(((T7*)a1),r259run_time_mark());
  1558. }
  1559.  
  1560.  
  1561. void r259standard_gc_define1(T259* C){
  1562. T2 _rcid=0;
  1563. T0* _rc=NULL;
  1564. _rc=r259run_class(C);
  1565. _rcid=(((T24*)_rc))->_id/*4*/;
  1566. r7copy((T7*)(((T0*)ms54_785024a)),((T0*)ms13_6568));
  1567. r7append((T7*)(((T0*)ms54_785024a)),((T0*)ms13_5600));
  1568. r7extend((T7*)(((T0*)ms54_785024a)),'B');
  1569. r2append_in(_rcid,((T0*)ms54_785024a));
  1570. r7extend((T7*)(((T0*)ms54_785024a)),'\40');
  1571. r7append((T7*)(((T0*)ms54_785024a)),((T0*)ms13_410));
  1572. r2append_in(_rcid,((T0*)ms54_785024a));
  1573. r7append((T7*)(((T0*)ms54_785024a)),((T0*)ms13_144));
  1574. r7append((T7*)(((T0*)ms54_785024a)),((T0*)ms13_5600));
  1575. r7extend((T7*)(((T0*)ms54_785024a)),'B');
  1576. r2append_in(_rcid,((T0*)ms54_785024a));
  1577. r7append((T7*)(((T0*)ms54_785024a)),((T0*)ms54_420));
  1578. r2append_in(_rcid,((T0*)ms54_785024a));
  1579. r7append((T7*)(((T0*)ms54_785024a)),((T0*)ms54_78962));
  1580. r2append_in(_rcid,((T0*)ms54_785024a));
  1581. r7append((T7*)(((T0*)ms54_785024a)),((T0*)ms54_12312));
  1582. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms54_785024a));
  1583. /*]*/
  1584. r7copy((T7*)(((T0*)ms54_785024a)),((T0*)ms13_410));
  1585. r2append_in(_rcid,((T0*)ms54_785024a));
  1586. r7extend((T7*)(((T0*)ms54_785024a)),'\52');
  1587. r259gc_store_in(C,((T0*)ms54_785024a));
  1588. r25put_extern5((T25*)(oBC12cpp),((T0*)ms54_785024a),((T0*)ms13_1300));
  1589. r7copy((T7*)(((T0*)ms54_785024a)),((T0*)ms13_1011));
  1590. r7extend((T7*)(((T0*)ms54_785024a)),'\40');
  1591. r259gc_store_left_in(C,((T0*)ms54_785024a));
  1592. r25put_extern2((T25*)(oBC12cpp),((T0*)ms54_785024a),'0');
  1593. r7copy((T7*)(((T0*)ms54_785024a)),((T0*)ms54_2420));
  1594. r259gc_store_chunk_in(C,((T0*)ms54_785024a));
  1595. r25put_extern5((T25*)(oBC12cpp),((T0*)ms54_785024a),((T0*)ms13_1300));
  1596. r7copy((T7*)(((T0*)ms54_785024a)),((T0*)ms13_410));
  1597. r2append_in(_rcid,((T0*)ms54_785024a));
  1598. r7extend((T7*)(((T0*)ms54_785024a)),'\52');
  1599. r259gc_free_in(C,((T0*)ms54_785024a));
  1600. r25put_extern5((T25*)(oBC12cpp),((T0*)ms54_785024a),((T0*)ms13_1300));
  1601. /*[IF*/
  1602. if(((T330*)(oBC12gc_handler))->_info_flag/*4*/){
  1603. r7copy((T7*)(((T0*)ms54_785024a)),((T0*)ms13_1011));
  1604. r7extend((T7*)(((T0*)ms54_785024a)),'\40');
  1605. r259gc_info_nb_in(C,((T0*)ms54_785024a));
  1606. r25put_extern2((T25*)(oBC12cpp),((T0*)ms54_785024a),'0');
  1607. }
  1608. /*FI]*/
  1609. }
  1610. /*No:TYPE_ANY.fz_typedef*/
  1611.  
  1612.  
  1613. void r259fatal_error_generic_list(T259* C){
  1614. r21add_type((T0*)C,((T0*)ms54_29184));
  1615. r21print_as_fatal_error((T21*)(oBC12eh));
  1616. }
  1617. /*No:TYPE_ANY.is_array*/
  1618. /*No:TYPE_ANY.fz_int*/
  1619. /*No:TYPE_ANY.tmp_string*/
  1620. /*No:TYPE_ANY.is_dummy_expanded*/
  1621. /*No:TYPE_ANY.space_for_variable*/
  1622. /*No:TYPE_ANY.to_expanded*/
  1623.  
  1624.  
  1625. T0* r259generic_list(T259* C){
  1626. T0* R=NULL;
  1627. r259fatal_error_generic_list(C);
  1628. return R;
  1629. }
  1630.  
  1631.  
  1632. T0* r259base_class(T259* C){
  1633. T0* R=NULL;
  1634. T0* _bcn=NULL;
  1635. _bcn=(C)->_base_class_name/*4*/;
  1636. /*[IF*/
  1637. if((_bcn)!=((void*)(NULL))){
  1638. R=r64base_class(((T64*)_bcn));
  1639. }
  1640. else{
  1641. /*[IRF3.6append*/{T0* b1=((T0*)ms54_37098);
  1642. r7append((T7*)(oBC21explanation),b1);
  1643. }/*]*/
  1644. r21add_type((T0*)C,((T0*)ms13_47));
  1645. r21print_as_fatal_error((T21*)(oBC12eh));
  1646. }
  1647. /*FI]*/
  1648. return R;
  1649. }
  1650.  
  1651.  
  1652. void r259cast_to_ref(T259* C){
  1653. X54cast_to_ref(/*(IRF4.4run_type*/((T0*)(C))/*)*/);
  1654. }
  1655. /*No:TYPE_ANY.base_class_name*/
  1656. /*No:TYPE_ANY.fz_se_cmpt*/
  1657. /*No:TYPE_ANY.is_formal_generic*/
  1658.  
  1659.  
  1660. T6 r259is_a_in(T259* C,T0* a1,T0* a2){
  1661. T6 R=0;
  1662. T0* _ct=NULL;
  1663. T0* _t2=NULL;
  1664. T0* _t1=NULL;
  1665. /*[IF*/
  1666. if((r259written_mark())==((void*)(X54written_mark(a1)))){
  1667. R=1;
  1668. }
  1669. else{
  1670. _ct=(((T24*)a2))->_current_type/*0*/;
  1671. _t1=r259to_runnable(C,_ct);
  1672. _t2=X54to_runnable(a1,_ct);
  1673. /*[IF*/
  1674. if((X54run_time_mark(_t1))==((void*)(X54run_time_mark(_t2)))){
  1675. R=1;
  1676. }
  1677. else{
  1678. R=X54is_a(_t1,_t2);
  1679. }
  1680. /*FI]*/
  1681. }
  1682. /*FI]*/
  1683. return R;
  1684. }
  1685. /*No:TYPE_ANY.body*/
  1686.  
  1687.  
  1688. T0* r259look_up_for(T259* C,T0* a1,T0* a2){
  1689. T0* R=NULL;
  1690. R=r63look_up_for((T63*)(r259base_class(C)),a1,a2);
  1691. return R;
  1692. }
  1693. /*No:TYPE_ANY.fz_00*/
  1694. /*No:TYPE_ANY.fz_10*/
  1695.  
  1696.  
  1697. void r259c_type_for_external_in(T0* a1){
  1698. /*[IF*/
  1699. {/*AT*/r7append(((T7*)a1),((T0*)ms13_1776a));
  1700. r7extend(((T7*)a1),'\52');
  1701. }
  1702. /*FI]*/
  1703. }
  1704. /*No:TYPE_ANY.c_type_for_argument_in*/
  1705. /*No:TYPE_ANY.c_header_pass1*/
  1706. /*No:TYPE_ANY.fz_printf*/
  1707.  
  1708.  
  1709. void r259c_type_for_target_in(T259* C,T0* a1){
  1710. r7extend(((T7*)a1),'T');
  1711. r2append_in(r259id(C),a1);
  1712. r7extend(((T7*)a1),'\52');
  1713. }
  1714. /*No:TYPE_ANY.c_type_for_result_in*/
  1715. /*No:TYPE_ANY.run_type*/
  1716. /*No:TYPE_ANY.fz_gc_sweep*/
  1717. /*No:TYPE_ANY.expanded_initializer*/
  1718.  
  1719.  
  1720. void r259c_frame_descriptor(T259* C){
  1721. r7extend((T7*)(oBC12c_frame_descriptor_format),'\45');
  1722. /*[IF*/
  1723. {/*AT*/r7extend((T7*)(oBC12c_frame_descriptor_format),'R');
  1724. }
  1725. /*FI]*/
  1726. r2append_in(r259id(C),oBC12c_frame_descriptor_format);
  1727. r7extend((T7*)(oBC12c_frame_descriptor_format),'\45');
  1728. }
  1729.  
  1730.  
  1731. T6 r259has_creation(T259* C,T0* a1){
  1732. T6 R=0;
  1733. r21add_position(X83start_position(a1));
  1734. r259error(/*(IRF4.6start_position*/(((T64*)((C)->_base_class_name/*4*/)))->_start_position/*4*//*)*/,((T0*)ms259_27380));
  1735. return R;
  1736. }
  1737. /*No:TYPE_ANY.fz_t0_star*/
  1738.  
  1739.  
  1740. T2 r259space_for_pointer(void){
  1741. T2 R=0;
  1742. T8 _p=0;
  1743. R=sizeof(T8);
  1744. return R;
  1745. }
  1746. /*No:TYPE_ANY.c_header_pass3*/
  1747. /*No:TYPE_ANY.fz_14*/
  1748.  
  1749.  
  1750. void r259gc_call_new_in(T259* C,T0* a1){
  1751. r7append(((T7*)a1),((T0*)ms13_1008));
  1752. r2append_in(r259id(C),a1);
  1753. r7extend(((T7*)a1),'\50');
  1754. r7extend(((T7*)a1),'\51');
  1755. }
  1756. /*No:TYPE_ANY.fz_new*/
  1757. /*No:TYPE_ANY.is_boolean*/
  1758.  
  1759.  
  1760. void r259mapping_cast(T259* C){
  1761. /*[IRF3.3clear*/((((T7*)((T7*)(((T0*)ms54_15696)))))->_count)=(0);
  1762. /*]*/
  1763. r7extend((T7*)(((T0*)ms54_15696)),'\50');
  1764. r259c_type_for_target_in(C,((T0*)ms54_15696));
  1765. r7extend((T7*)(((T0*)ms54_15696)),'\51');
  1766. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms54_15696));
  1767. /*]*/
  1768. }
  1769. /*No:TYPE_ANY.is_generic*/
  1770. /*No:TYPE_ANY.fz_struct*/
  1771. /*No:TYPE_ANY.is_real*/
  1772.  
  1773.  
  1774. T6 r259need_c_struct(T259* C){
  1775. T6 R=0;
  1776. /*[IF*/
  1777. if(r24is_tagged((T24*)(r259run_class(C)))){
  1778. R=1;
  1779. }
  1780. else{
  1781. R=(r24writable_attributes((T24*)(r259run_class(C))))!=((void*)(NULL));
  1782. }
  1783. /*FI]*/
  1784. return R;
  1785. }
  1786. /*No:TYPE_ANY.is_any*/
  1787. /*No:TYPE_ANY.nb_errors*/
  1788.  
  1789.  
  1790. void r259standard_gc_info_in(T259* C,T0* a1){
  1791. r7append(((T7*)a1),((T0*)ms13_7104));
  1792. r7extend(((T7*)a1),'\50');
  1793. r7extend(((T7*)a1),'\42');
  1794. r7append(((T7*)a1),r259run_time_mark());
  1795. r7append(((T7*)a1),((T0*)ms13_6030));
  1796. r259gc_info_nb_in(C,a1);
  1797. r7append(((T7*)a1),((T0*)ms13_348));
  1798. r7append(((T7*)a1),((T0*)ms13_7104));
  1799. r7extend(((T7*)a1),'\50');
  1800. r7extend(((T7*)a1),'\42');
  1801. r259gc_store_left_in(C,a1);
  1802. r7append(((T7*)a1),((T0*)ms13_6030));
  1803. r259gc_store_left_in(C,a1);
  1804. r7append(((T7*)a1),((T0*)ms13_348));
  1805. }
  1806. /*No:TYPE_ANY.header*/
  1807.  
  1808.  
  1809. void r259standard_c_struct(T259* C){
  1810. T0* _t=NULL;
  1811. T0* _a=NULL;
  1812. T2 _mem_id=0;
  1813. T2 _i=0;
  1814. T0* _wa=NULL;
  1815. _mem_id=r259id(C);
  1816. _wa=r24writable_attributes((T24*)(r259run_class(C)));
  1817. r7copy((T7*)(((T0*)ms54_785024)),((T0*)ms13_5600));
  1818. r7extend((T7*)(((T0*)ms54_785024)),'S');
  1819. r2append_in(_mem_id,((T0*)ms54_785024));
  1820. r7extend((T7*)(((T0*)ms54_785024)),'\173');
  1821. /*[IF*/
  1822. {/*AT*//*[IF*/
  1823. if(r24is_tagged((T24*)(r259run_class(C)))){
  1824. r7append((T7*)(((T0*)ms54_785024)),((T0*)ms54_6272));
  1825. }
  1826. /*FI]*/
  1827. }
  1828. /*FI]*/
  1829. /*[IF*/
  1830. if((_wa)!=((void*)(NULL))){
  1831. _i=(((T361*)_wa))->_upper/*12*/;
  1832. while (!((_i)==(0))) {
  1833. _a=r361item(((T361*)_wa),_i);
  1834. _t=X54run_type((((T356*)_a))->_result_type/*28*/);
  1835. X54c_type_for_result_in(_t,((T0*)ms54_785024));
  1836. r7extend((T7*)(((T0*)ms54_785024)),'\40');
  1837. r7extend((T7*)(((T0*)ms54_785024)),'\137');
  1838. r7append((T7*)(((T0*)ms54_785024)),X83to_string((((T356*)_a))->_name/*16*/));
  1839. r7extend((T7*)(((T0*)ms54_785024)),'\73');
  1840. _i=(_i)-(1);
  1841. }
  1842. }
  1843. /*FI]*/
  1844. r7extend((T7*)(((T0*)ms54_785024)),'\175');
  1845. r7append((T7*)(((T0*)ms54_785024)),((T0*)ms13_144));
  1846. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms54_785024));
  1847. /*]*/
  1848. /*[IF*/
  1849. /*AF*//*AE*/
  1850. /*FI]*/
  1851. }
  1852. /*No:TYPE_ANY.is_basic_eiffel_expanded*/
  1853. /*No:TYPE_ANY.fz_gc_mark*/
  1854.  
  1855.  
  1856. void r259gc_store_chunk_in(T259* C,T0* a1){
  1857. r7append(((T7*)a1),((T0*)ms54_19239));
  1858. r2append_in(r259id(C),a1);
  1859. }
  1860. /*No:TYPE_ANY.need_gc_mark_function*/
  1861.  
  1862.  
  1863. T6 r259is_native_array(T259* C){
  1864. T6 R=0;
  1865. T0* _tna=NULL;
  1866. _tna=(T0*)C;
  1867. if(NULL!=(_tna))switch(((T0*)_tna)->id) {
  1868. case 263: 
  1869. break;
  1870. default:
  1871. _tna=NULL;
  1872. };R=(_tna)!=((void*)(NULL));
  1873. return R;
  1874. }
  1875. /*No:TYPE_ANY.is_string*/
  1876.  
  1877.  
  1878. void r259gc_align_mark_in(T259* C,T0* a1){
  1879. r7append(((T7*)a1),((T0*)ms54_24804));
  1880. r2append_in(r259id(C),a1);
  1881. }
  1882. /*No:TYPE_ANY.is_integer*/
  1883. /*No:TYPE_ANY.is_anchored*/
  1884. /*No:TYPE_ANY.is_run_type*/
  1885.  
  1886.  
  1887. void r259standard_c_object_model(T259* C){
  1888. T0* _rc=NULL;
  1889. T2 _mem_id=0;
  1890. _rc=r259run_class(C);
  1891. _mem_id=(((T24*)_rc))->_id/*4*/;
  1892. /*[IRF3.3clear*/((((T7*)((T7*)(((T0*)ms54_785024)))))->_count)=(0);
  1893. /*]*/
  1894. r7extend((T7*)(((T0*)ms54_785024)),'T');
  1895. r2append_in(_mem_id,((T0*)ms54_785024));
  1896. r7extend((T7*)(((T0*)ms54_785024)),'\40');
  1897. r7extend((T7*)(((T0*)ms54_785024)),'M');
  1898. r2append_in(_mem_id,((T0*)ms54_785024));
  1899. r25put_extern7((T25*)(oBC12cpp),((T0*)ms54_785024));
  1900. /*[IRF3.3swap_on_c*/((((T25*)((T25*)(oBC12cpp))))->_current_out)=(oBC25out_c);
  1901. /*]*/
  1902. /*[IRF3.3clear*/((((T7*)((T7*)(((T0*)ms54_785024)))))->_count)=(0);
  1903. /*]*/
  1904. r24c_object_model_in(((T24*)_rc),((T0*)ms54_785024));
  1905. r7append((T7*)(((T0*)ms54_785024)),((T0*)ms13_144));
  1906. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms54_785024));
  1907. /*]*/
  1908. r25swap_on_h((T25*)(oBC12cpp));
  1909. }
  1910. /*No:TYPE_ANY.is_reference*/
  1911. /*No:TYPE_ANY.us_any*/
  1912.  
  1913.  
  1914. void r259standard_just_before_gc_mark_in(T259* C,T0* a1){
  1915. r259gc_free_in(C,a1);
  1916. r7extend(((T7*)a1),'\75');
  1917. r7append(((T7*)a1),((T0*)ms13_1300));
  1918. r7append(((T7*)a1),((T0*)ms13_144));
  1919. }
  1920. /*No:TYPE_ANY.is_none*/
  1921. /*No:TYPE_ANY.fz_inako*/
  1922. /*No:TYPE_ANY.fz_c_void_args*/
  1923. /*No:TYPE_ANY.is_like_argument*/
  1924. /*No:TYPE_ANY.just_before_gc_mark_in*/
  1925.  
  1926.  
  1927. void r259gc_store_left_in(T259* C,T0* a1){
  1928. r7append(((T7*)a1),((T0*)ms54_17320));
  1929. r2append_in(r259id(C),a1);
  1930. }
  1931. /*No:TYPE_ANY.mapping_cast_memory*/
  1932. int fBC259check_type=0;
  1933.  
  1934.  
  1935. void r259check_type(T259* C){
  1936. if (fBC259check_type==0){
  1937. T0* _rc=NULL;
  1938. T0* _bc=NULL;
  1939. fBC259check_type=1;
  1940. _bc=r259base_class(C);
  1941. /*[IF*/
  1942. if((/*(IRF4.9nb_errors*/((T21*)(oBC12eh))->_nb_errors/*4*//*)*/)==(0)){
  1943. _rc=r259run_class(C);
  1944. }
  1945. /*FI]*/
  1946. /*[IF*/
  1947. if((/*(IRF4.9nb_errors*/((T21*)(oBC12eh))->_nb_errors/*4*//*)*/)==(0)){
  1948. /*[IF*/
  1949. if((((T63*)_bc))->_is_expanded/*20*/){
  1950. r259error(/*(IRF4.6start_position*/(((T64*)((C)->_base_class_name/*4*/)))->_start_position/*4*//*)*/,((T0*)ms259_38450));
  1951. }
  1952. /*FI]*/
  1953. }
  1954. /*FI]*/
  1955. }}
  1956. /*No:TYPE_ANY.fz_gc*/
  1957. /*No:TYPE_ANY.is_double*/
  1958.  
  1959.  
  1960. void r259standard_c_typedef(T259* C){
  1961. T2 _mem_id=0;
  1962. _mem_id=r259id(C);
  1963. /*[IRF3.3clear*/((((T7*)((T7*)(((T0*)ms54_785024)))))->_count)=(0);
  1964. /*]*/
  1965. /*[IF*/
  1966. if(r259need_c_struct(C)){
  1967. r7append((T7*)(((T0*)ms54_785024)),((T0*)ms13_6568));
  1968. r7append((T7*)(((T0*)ms54_785024)),((T0*)ms13_5600));
  1969. r7extend((T7*)(((T0*)ms54_785024)),'S');
  1970. r2append_in(_mem_id,((T0*)ms54_785024));
  1971. r7extend((T7*)(((T0*)ms54_785024)),'\40');
  1972. r7extend((T7*)(((T0*)ms54_785024)),'T');
  1973. r2append_in(_mem_id,((T0*)ms54_785024));
  1974. r7append((T7*)(((T0*)ms54_785024)),((T0*)ms13_144));
  1975. }
  1976. /*AF*/ else {/*AT*/r7append((T7*)(((T0*)ms54_785024)),((T0*)ms13_6568));
  1977. r7append((T7*)(((T0*)ms54_785024)),((T0*)ms13_1776a));
  1978. r7extend((T7*)(((T0*)ms54_785024)),'\52');
  1979. r7extend((T7*)(((T0*)ms54_785024)),'T');
  1980. r2append_in(_mem_id,((T0*)ms54_785024));
  1981. r7append((T7*)(((T0*)ms54_785024)),((T0*)ms13_144));
  1982. }
  1983. /*FI]*/
  1984. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms54_785024));
  1985. /*]*/
  1986. }
  1987.  
  1988.  
  1989. T6 r63is_general(T63* C){
  1990. T6 R=0;
  1991. R=(((T0*)ms14_6412))==((void*)(((T64*)((C)->_name/*24*/))->_to_string/*0*/));
  1992. return R;
  1993. }
  1994.  
  1995.  
  1996. T0* r63root_procedure(T63* C,T0* a1){
  1997. T0* R=NULL;
  1998. T0* _f=NULL;
  1999. T0* _rc=NULL;
  2000. /*[IF*/
  2001. if(/*(IRF4.7is_generic*/((C)->_formal_generic_list/*28*/)!=(NULL)/*)*/){
  2002. /*[IRF3.6append*/{T0* b1=((T64*)((C)->_name/*24*/))->_to_string/*0*/;
  2003. r7append((T7*)(oBC21explanation),b1);
  2004. }/*]*/
  2005. /*[IRF3.6append*/{T0* b1=((T0*)ms63_148460);
  2006. r7append((T7*)(oBC21explanation),b1);
  2007. }/*]*/
  2008. r21print_as_fatal_error((T21*)(oBC12eh));
  2009. }
  2010. /*FI]*/
  2011. /*[IF*/
  2012. if((C)->_is_deferred/*16*/){
  2013. /*[IRF3.6append*/{T0* b1=((T64*)((C)->_name/*24*/))->_to_string/*0*/;
  2014. r7append((T7*)(oBC21explanation),b1);
  2015. }/*]*/
  2016. /*[IRF3.6append*/{T0* b1=((T0*)ms63_153753);
  2017. r7append((T7*)(oBC21explanation),b1);
  2018. }/*]*/
  2019. r21print_as_warning((T21*)(oBC12eh));
  2020. }
  2021. /*FI]*/
  2022. _rc=r63run_class(C);
  2023. r24set_at_run_time(((T24*)_rc));
  2024. _f=r63look_up_for(C,_rc,a1);
  2025. /*[IF*/
  2026. if((_f)==((void*)(NULL))){
  2027. r21add_position((((T148*)a1))->_start_position/*8*/);
  2028. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms63_40425);
  2029. r21fatal_error((T21*)(oBC12eh),b1);
  2030. }/*]*/
  2031. }
  2032. /*FI]*/
  2033. R=_f;
  2034. if(NULL!=(R))switch(((T0*)R)->id) {
  2035. case 302: 
  2036. break;
  2037. default:
  2038. R=NULL;
  2039. };/*[IF*/
  2040. if((R)==((void*)(NULL))){
  2041. r21add_position(X93start_position(_f));
  2042. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms63_60357);
  2043. r21fatal_error((T21*)(oBC12eh),b1);
  2044. }/*]*/
  2045. }
  2046. /*FI]*/
  2047. return R;
  2048. }
  2049.  
  2050.  
  2051. void r63fatal_undefine(T63* C,T0* a1){
  2052. /*[IRF3.6append*/{T0* b1=((T0*)ms63_36660);
  2053. r7append((T7*)(oBC21explanation),b1);
  2054. }/*]*/
  2055. /*[IRF3.6append*/{T0* b1=X83to_string(a1);
  2056. r7append((T7*)(oBC21explanation),b1);
  2057. }/*]*/
  2058. /*[IRF3.6append*/{T0* b1=((T0*)ms63_3192);
  2059. r7append((T7*)(oBC21explanation),b1);
  2060. }/*]*/
  2061. /*[IRF3.6append*/{T0* b1=((T64*)((C)->_name/*24*/))->_to_string/*0*/;
  2062. r7append((T7*)(oBC21explanation),b1);
  2063. }/*]*/
  2064. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms63_166);
  2065. r21fatal_error((T21*)(oBC12eh),b1);
  2066. }/*]*/
  2067. }
  2068.  
  2069.  
  2070. T0* r63going_up(T63* C,T0* a1,T0* a2,T0* a3){
  2071. T0* R=NULL;
  2072. /*[IF*/
  2073. if(((C)->_parent_list/*40*/)==((void*)(NULL))){
  2074. R=r63going_up((T63*)(r63class_any()),a1,a2,a3);
  2075. }
  2076. else{
  2077. R=r78going_up((T78*)((C)->_parent_list/*40*/),a1,a2,a3);
  2078. }
  2079. /*FI]*/
  2080. return R;
  2081. }
  2082. /*No:BASE_CLASS.creation_clause_list*/
  2083. /*No:BASE_CLASS.set_obsolete_type_string*/
  2084.  
  2085.  
  2086. void r63add_feature_clause(T63* C,T0* a1){
  2087. /*[IF*/
  2088. if(((C)->_feature_clause_list/*48*/)==((void*)(NULL))){
  2089. {T95*n=malloc(sizeof(*n));
  2090. *n=M95;
  2091. /*[IRF3.3make*/((((T95*)(n)))->_list)=(se_ma97(1,
  2092. a1));
  2093. /*]*/
  2094. C->_feature_clause_list=(T0*)n;
  2095. }
  2096. }
  2097. else{
  2098. /*[IRF3.5add_last*/r97add_last(((T97*)(((T95*)((C)->_feature_clause_list/*48*/))->_list/*0*/)),a1);
  2099. /*]*/
  2100. }
  2101. /*FI]*/
  2102. }
  2103. /*No:BASE_CLASS.id*/
  2104. /*No:BASE_CLASS.heading_comment2*/
  2105.  
  2106.  
  2107. void r63get_started(T63* C){
  2108. C->_id=r102item((T102*)(r63id_provider()),((T64*)((C)->_name/*24*/))->_to_string/*0*/);
  2109. /*[IF*/
  2110. if(((C)->_feature_clause_list/*48*/)!=((void*)(NULL))){
  2111. r95get_started((T95*)((C)->_feature_clause_list/*48*/),(C)->_feature_dictionary/*60*/);
  2112. }
  2113. /*FI]*/
  2114. /*[IF*/
  2115. if(((C)->_parent_list/*40*/)!=((void*)(NULL))){
  2116. r78get_started((T78*)((C)->_parent_list/*40*/));
  2117. }
  2118. /*FI]*/
  2119. /*[IF*/
  2120. if(((C)->_end_comment/*56*/)!=((void*)(NULL))){
  2121. r82good_end((T82*)((C)->_end_comment/*56*/),(C)->_name/*24*/);
  2122. }
  2123. /*FI]*/
  2124. /*[IF*/
  2125. if(((C)->_parent_list/*40*/)!=((void*)(NULL))){
  2126. /*[IRF3.3clear*/((((T67*)((T67*)(oBC63visited))))->_upper)=(-(1));
  2127. /*]*/
  2128. r67add_last((T67*)(oBC63visited),(T0*)C);
  2129. r78inherit_cycle_check((T78*)((C)->_parent_list/*40*/));
  2130. }
  2131. /*FI]*/
  2132. /*[IF*/
  2133. if(((r43all_check((T43*)(oBC12run_control)))&&((C)->_is_deferred/*16*/))&&(((C)->_creation_clause_list/*44*/)!=((void*)(NULL)))){
  2134. r21add_position(((T64*)((C)->_name/*24*/))->_start_position/*4*/);
  2135. r63warning(r74start_position((T74*)((C)->_creation_clause_list/*44*/)),((T0*)ms63_172312));
  2136. }
  2137. /*FI]*/
  2138. }
  2139.  
  2140.  
  2141. T0* r63new_name_of_original(T63* C,T0* a1,T0* a2){
  2142. T0* R=NULL;
  2143. /*[IF*/
  2144. if((C)==((void*)(a1))){
  2145. R=a2;
  2146. }
  2147.  else if(r63is_general(C)){
  2148. R=a2;
  2149. }
  2150. else{
  2151. /*[IF*/
  2152. if(((C)->_parent_list/*40*/)==((void*)(NULL))){
  2153. R=r63new_name_of((T63*)(r63class_any()),a1,a2);
  2154. }
  2155. else{
  2156. /*[IRF3.3clear*/((((T340*)((T340*)(oBC63going_up_trace))))->_upper)=(-(1));
  2157. /*]*/
  2158. R=r78going_up((T78*)((C)->_parent_list/*40*/),oBC63going_up_trace,a1,a2);
  2159. }
  2160. /*FI]*/
  2161. }
  2162. /*FI]*/
  2163. return R;
  2164. }
  2165.  
  2166.  
  2167. T0* r63run_class(T63* C){
  2168. T0* R=NULL;
  2169. T0* _type=NULL;
  2170. T0* _n=NULL;
  2171. T0* _rcd=NULL;
  2172. _n=((T64*)((C)->_name/*24*/))->_to_string/*0*/;
  2173. _rcd=oBC22run_class_dictionary;
  2174. /*[IF*/
  2175. if(r59has(((T59*)_rcd),_n)){
  2176. R=r59at(((T59*)_rcd),_n);
  2177. }
  2178. else{
  2179. {T273*n=malloc(sizeof(*n));
  2180. *n=M273;
  2181. /*[IRF3.3make*/((((T273*)(n)))->_base_class_name)=((C)->_name/*24*/);
  2182. /*]*/
  2183. _type=(T0*)n;
  2184. }
  2185. R=r273run_class(((T273*)_type));
  2186. }
  2187. /*FI]*/
  2188. return R;
  2189. }
  2190. /*No:BASE_CLASS.feature_clause_list*/
  2191. /*No:BASE_CLASS.formal_generic_list*/
  2192.  
  2193.  
  2194. T6 r63once_flag(T63* C,T0* a1){
  2195. T6 R=0;
  2196. /*[IF*/
  2197. if(((C)->_once_mark_list/*64*/)==((void*)(NULL))){
  2198. {T62*n=malloc(sizeof(*n));
  2199. *n=M62;
  2200. r62with_capacity(n,4);
  2201. C->_once_mark_list=(T0*)n;
  2202. }
  2203. r62add_last((T62*)((C)->_once_mark_list/*64*/),a1);
  2204. }
  2205.  else if(r62fast_has((T62*)((C)->_once_mark_list/*64*/),a1)){
  2206. R=1;
  2207. }
  2208. else{
  2209. r62add_last((T62*)((C)->_once_mark_list/*64*/),a1);
  2210. }
  2211. /*FI]*/
  2212. return R;
  2213. }
  2214. /*No:BASE_CLASS.set_end_comment*/
  2215.  
  2216.  
  2217. T0* r63get_copy(T63* C){
  2218. T0* R=NULL;
  2219. R=r92at((T92*)((C)->_feature_dictionary/*60*/),((T0*)ms14_1812));
  2220. return R;
  2221. }
  2222.  
  2223.  
  2224. T0* r63super_look_up_for(T63* C,T0* a1,T0* a2){
  2225. T0* R=NULL;
  2226. /*[IF*/
  2227. if(((C)->_parent_list/*40*/)==((void*)(NULL))){
  2228. /*[IF*/
  2229. if(r63is_general(C)){
  2230. R=NULL;
  2231. }
  2232. else{
  2233. R=r63look_up_for((T63*)(r63class_any()),a1,a2);
  2234. }
  2235. /*FI]*/
  2236. }
  2237. else{
  2238. R=r78look_up_for((T78*)((C)->_parent_list/*40*/),a1,a2);
  2239. }
  2240. /*FI]*/
  2241. return R;
  2242. }
  2243. T0*oBC63visited=NULL;
  2244. /*No:BASE_CLASS.fatal_error*/
  2245. /*No:BASE_CLASS.parent_list*/
  2246. /*No:BASE_CLASS.is_expanded*/
  2247.  
  2248.  
  2249. void r63collect_invariant(T63* C,T0* a1){
  2250. /*[IF*/
  2251. if(((C)->_parent_list/*40*/)!=((void*)(NULL))){
  2252. r78collect_invariant((T78*)((C)->_parent_list/*40*/),a1);
  2253. }
  2254. /*FI]*/
  2255. /*[IF*/
  2256. if(((C)->_class_invariant/*52*/)!=((void*)(NULL))){
  2257. /*[IRF3.6collect_invariant*/{T0* b1=(C)->_class_invariant/*52*/;
  2258. r104add_into(((T104*)b1),oBC24ci_collector);
  2259. }/*]*/
  2260. }
  2261. /*FI]*/
  2262. }
  2263.  
  2264.  
  2265. void r63fatal_error_vdrd6(T0* a1,T0* a2,T0* a3){
  2266. r21add_position(X93start_position(a1));
  2267. r21add_position(X93start_position(a2));
  2268. /*[IRF3.6append*/{T0* b1=((T0*)ms63_18000);
  2269. r7append((T7*)(oBC21explanation),b1);
  2270. }/*]*/
  2271. /*[IRF3.6append*/{T0* b1=a3;
  2272. r7append((T7*)(oBC21explanation),b1);
  2273. }/*]*/
  2274. r21print_as_fatal_error((T21*)(oBC12eh));
  2275. }
  2276.  
  2277.  
  2278. T0* r63clients_for(T63* C,T0* a1){
  2279. T0* R=NULL;
  2280. /*[IF*/
  2281. if(r63proper_has(C,a1)){
  2282. R=X93clients(r92at((T92*)((C)->_feature_dictionary/*60*/),X83to_key(a1)));
  2283. }
  2284.  else if(r63is_general(C)){
  2285. }
  2286.  else if(((C)->_parent_list/*40*/)==((void*)(NULL))){
  2287. R=r63clients_for((T63*)(r63class_any()),a1);
  2288. }
  2289. else{
  2290. R=r78clients_for((T78*)((C)->_parent_list/*40*/),a1);
  2291. }
  2292. /*FI]*/
  2293. return R;
  2294. }
  2295. /*No:BASE_CLASS.us_general*/
  2296.  
  2297.  
  2298. void r63warning(T0* a1,T0* a2){
  2299. r21add_position(a1);
  2300. r21warning((T21*)(oBC12eh),a2);
  2301. }
  2302. /*No:BASE_CLASS.obsolete_type_string*/
  2303.  
  2304.  
  2305. T0* r63class_with(T0* a1){
  2306. T0* R=NULL;
  2307. R=r22get_class(a1);
  2308. return R;
  2309. }
  2310. /*No:BASE_CLASS.set_formal_generic_list*/
  2311. /*No:BASE_CLASS.fz_dot*/
  2312. int fBC12class_any=0;
  2313. T0*oBC12class_any=NULL;
  2314.  
  2315.  
  2316. T0* r63class_any(void){
  2317. if(fBC12class_any==0){
  2318. fBC12class_any=1;
  2319. oBC12class_any=r63class_with(((T0*)ms14_714));
  2320. }
  2321. return oBC12class_any;}
  2322.  
  2323.  
  2324. void r63error(T0* a1,T0* a2){
  2325. r21add_position(a1);
  2326. r21error((T21*)(oBC12eh),a2);
  2327. }
  2328. /*No:BASE_CLASS.class_invariant*/
  2329.  
  2330.  
  2331. void r63make(T63* C){
  2332. {T67*n=malloc(sizeof(*n));
  2333. *n=M67;
  2334. r67with_capacity(n,16);
  2335. C->_isom=(T0*)n;
  2336. }
  2337. C->_path=r84item(((T72*)(oBC12parser_buffer))->_path/*0*/);
  2338. {T64*n=malloc(sizeof(*n));
  2339. *n=M64;
  2340. r64make_unknown(n);
  2341. C->_name=(T0*)n;
  2342. }
  2343. {T92*n=malloc(sizeof(*n));
  2344. *n=M92;
  2345. /*[IRF3.4make*/r92with_capacity(n,32);
  2346. /*]*/
  2347. C->_feature_dictionary=(T0*)n;
  2348. }
  2349. }
  2350. /*No:BASE_CLASS.heading_comment1*/
  2351.  
  2352.  
  2353. T0* r63id_provider(void){
  2354. if(fBC12id_provider==0){
  2355. fBC12id_provider=1;
  2356. {T102*n=malloc(sizeof(*n));
  2357. *n=M102;
  2358. r102make(n);
  2359. oBC12id_provider=(T0*)n;
  2360. }
  2361. }
  2362. return oBC12id_provider;}
  2363.  
  2364.  
  2365. void r63mapping_c_in(T63* C,T0* a1){
  2366. r7extend(((T7*)a1),'B');
  2367. r7extend(((T7*)a1),'C');
  2368. r2append_in((C)->_id/*0*/,a1);
  2369. }
  2370.  
  2371.  
  2372. void r63collect_for(T63* C,T2 a1,T0* a2){
  2373. T0* _fn_key=NULL;
  2374. _fn_key=X83to_key(a2);
  2375. /*[IF*/
  2376. if(r92has((T92*)((C)->_feature_dictionary/*60*/),_fn_key)){
  2377. X93collect_for(r92at((T92*)((C)->_feature_dictionary/*60*/),_fn_key),a1);
  2378. }
  2379. /*FI]*/
  2380. /*[IF*/
  2381. if(((C)->_parent_list/*40*/)==((void*)(NULL))){
  2382. /*[IF*/
  2383. if(r63is_general(C)){
  2384. }
  2385. else{
  2386. r63collect_for((T63*)(r63class_any()),a1,a2);
  2387. }
  2388. /*FI]*/
  2389. }
  2390. else{
  2391. r78collect_for((T78*)((C)->_parent_list/*40*/),a1,a2);
  2392. }
  2393. /*FI]*/
  2394. }
  2395. /*No:BASE_CLASS.end_comment*/
  2396. /*No:BASE_CLASS.name*/
  2397. /*No:BASE_CLASS.set_heading_comment1*/
  2398. T0*oBC63going_up_trace=NULL;
  2399. /*No:BASE_CLASS.us_copy*/
  2400.  
  2401.  
  2402. T6 r63has(T63* C,T0* a1){
  2403. T6 R=0;
  2404. /*[IF*/
  2405. if(r92has((T92*)((C)->_feature_dictionary/*60*/),X83to_key(a1))){
  2406. R=1;
  2407. }
  2408. else{
  2409. R=r63super_has(C,a1);
  2410. }
  2411. /*FI]*/
  2412. return R;
  2413. }
  2414. /*No:BASE_CLASS.set_heading_comment2*/
  2415.  
  2416.  
  2417. void r63vdrd6(T0* a1,T0* a2,T0* a3){
  2418. T0* _rt2=NULL;
  2419. T0* _rt1=NULL;
  2420. T0* _ct=NULL;
  2421. T0* _writable_attribute=NULL;
  2422. _writable_attribute=a2;
  2423. if(NULL!=(_writable_attribute))switch(((T0*)_writable_attribute)->id) {
  2424. case 314: 
  2425. break;
  2426. default:
  2427. _writable_attribute=NULL;
  2428. };/*[IF*/
  2429. if((_writable_attribute)!=((void*)(NULL))){
  2430. _writable_attribute=a3;
  2431. if(NULL!=(_writable_attribute))switch(((T0*)_writable_attribute)->id) {
  2432. case 314: 
  2433. break;
  2434. default:
  2435. _writable_attribute=NULL;
  2436. };/*[IF*/
  2437. if((_writable_attribute)==((void*)(NULL))){
  2438. r63fatal_error_vdrd6(a2,a3,((T0*)ms63_197701));
  2439. }
  2440. else{
  2441. /*[IRF3.3set_isa_redefinition*/((((T314*)(((T314*)_writable_attribute))))->_isa_redefinition)=(1);
  2442. /*]*/
  2443. _ct=(((T24*)a1))->_current_type/*0*/;
  2444. _rt1=X54to_runnable(X93result_type(a2),_ct);
  2445. _rt2=X54to_runnable(X93result_type(a3),_ct);
  2446. /*[IF*/
  2447. if(X54is_reference(_rt1)){
  2448. /*[IF*/
  2449. if(X54is_reference(_rt2)){
  2450. }
  2451. else{
  2452. r63fatal_error_vdrd6(a2,a3,((T0*)ms63_229320));
  2453. }
  2454. /*FI]*/
  2455. }
  2456.  else if(X54is_reference(_rt2)){
  2457. r63fatal_error_vdrd6(a2,a3,((T0*)ms63_229320));
  2458. }
  2459. /*FI]*/
  2460. }
  2461. /*FI]*/
  2462. }
  2463. /*FI]*/
  2464. }
  2465.  
  2466.  
  2467. T6 r63has_simple_feature_name(T63* C,T0* a1){
  2468. T6 R=0;
  2469. r148make((T148*)(r63mem_fn()),a1,NULL);
  2470. R=r63has(C,r63mem_fn());
  2471. return R;
  2472. }
  2473.  
  2474.  
  2475. T6 r63is_subclass_of(T63* C,T0* a1){
  2476. T6 R=0;
  2477. /*[IF*/
  2478. if(r67fast_has((T67*)((C)->_isom/*68*/),a1)){
  2479. R=1;
  2480. }
  2481. else{
  2482. /*[IF*/
  2483. if(r63is_any(((T63*)a1))){
  2484. R=1;
  2485. }
  2486. else{
  2487. /*[IRF3.3clear*/((((T67*)((T67*)(oBC63visited))))->_upper)=(-(1));
  2488. /*]*/
  2489. R=r63is_subclass_of_aux(C,a1);
  2490. }
  2491. /*FI]*/
  2492. /*[IF*/
  2493. if(R){
  2494. r67add_last((T67*)((C)->_isom/*68*/),a1);
  2495. }
  2496. /*FI]*/
  2497. }
  2498. /*FI]*/
  2499. return R;
  2500. }
  2501. /*No:BASE_CLASS.next_parent_for*/
  2502. /*No:BASE_CLASS.index_list*/
  2503. /*No:BASE_CLASS.once_mark_list*/
  2504.  
  2505.  
  2506. void r63set_invariant(T63* C,T0* a1,T0* a2,T0* a3){
  2507. /*[IF*/
  2508. if(((a2)!=((void*)(NULL)))||((a3)!=((void*)(NULL)))){
  2509. {T104*n=malloc(sizeof(*n));
  2510. *n=M104;
  2511. r104make(n,a1,a2,a3);
  2512. C->_class_invariant=(T0*)n;
  2513. }
  2514. }
  2515. /*FI]*/
  2516. }
  2517. /*No:BASE_CLASS.path*/
  2518. /*No:BASE_CLASS.vdrd6_types*/
  2519.  
  2520.  
  2521. T0* r63look_up_for(T63* C,T0* a1,T0* a2){
  2522. T0* R=NULL;
  2523. T2 _i=0;
  2524. T0* _super_fn=NULL;
  2525. T0* _fnl=NULL;
  2526. T0* _cst_att=NULL;
  2527. T0* _fn_key=NULL;
  2528. T0* _super=NULL;
  2529. _fn_key=X83to_key(a2);
  2530. /*[IF*/
  2531. if(r92has((T92*)((C)->_feature_dictionary/*60*/),_fn_key)){
  2532. R=r92at((T92*)((C)->_feature_dictionary/*60*/),_fn_key);
  2533. _super=r63super_look_up_for(C,a1,a2);
  2534. /*[IF*/
  2535. if(((_super)!=((void*)(NULL)))&&((_super)!=((void*)(R)))){
  2536. r63vdrd6(a1,_super,R);
  2537. _cst_att=_super;
  2538. if(NULL!=(_cst_att))switch(((T0*)_cst_att)->id) {
  2539. case 213: case 211: case 205: case 212: case 199: case 210: case 207: case 206: 
  2540. break;
  2541. default:
  2542. _cst_att=NULL;
  2543. };/*[IF*/
  2544. if((_cst_att)!=((void*)(NULL))){
  2545. r21add_position(X93start_position(_super));
  2546. r21add_position(X93start_position(R));
  2547. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms63_82732);
  2548. r21fatal_error((T21*)(oBC12eh),b1);
  2549. }/*]*/
  2550. }
  2551. /*FI]*/
  2552. _fnl=/*X93names*/((T0*)(((T199*)_super))->_names/*8*/);
  2553. _i=r85count(((T85*)_fnl));
  2554. while (!((_i)<(1))) {
  2555. _super_fn=r85item(((T85*)_fnl),_i);
  2556. /*[IF*/
  2557. if(X83is_frozen(_super_fn)){
  2558. /*[IF*/
  2559. if((X83to_key(_super_fn))==((void*)(_fn_key))){
  2560. r21add_position(X83start_position(_super_fn));
  2561. r21add_position(X93start_position(R));
  2562. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms63_66924);
  2563. r21fatal_error((T21*)(oBC12eh),b1);
  2564. }/*]*/
  2565. }
  2566. /*FI]*/
  2567. }
  2568. /*FI]*/
  2569. _i=(_i)-(1);
  2570. }
  2571. /*[IF*/
  2572. if(!(X93can_hide(R,_super,a1))){
  2573. r21add_position(X93start_position(_super));
  2574. r21add_position(X93start_position(R));
  2575. /*[IRF3.6append*/{T0* b1=((T0*)ms63_90129);
  2576. r7append((T7*)(oBC21explanation),b1);
  2577. }/*]*/
  2578. r21print_as_warning((T21*)(oBC12eh));
  2579. }
  2580. /*FI]*/
  2581. /*[IF*/
  2582. if(X93is_deferred(_super)){
  2583. }
  2584.  else if(r63has_redefine(C,a2)){
  2585. }
  2586. else{
  2587. r21add_position(X93start_position(R));
  2588. r21add_position(X93start_position(_super));
  2589. /*[IRF3.6append*/{T0* b1=((T0*)ms63_30936);
  2590. r7append((T7*)(oBC21explanation),b1);
  2591. }/*]*/
  2592. /*[IRF3.6append*/{T0* b1=((T64*)((C)->_name/*24*/))->_to_string/*0*/;
  2593. r7append((T7*)(oBC21explanation),b1);
  2594. }/*]*/
  2595. /*[IRF3.6append*/{T0* b1=((T0*)ms63_33000);
  2596. r7append((T7*)(oBC21explanation),b1);
  2597. }/*]*/
  2598. r21print_as_error((T21*)(oBC12eh));
  2599. }
  2600. /*FI]*/
  2601. }
  2602. /*FI]*/
  2603. }
  2604. else{
  2605. R=r63super_look_up_for(C,a1,a2);
  2606. }
  2607. /*FI]*/
  2608. return R;
  2609. }
  2610.  
  2611.  
  2612. T6 r63is_subclass_of_aux(T63* C,T0* a1){
  2613. T6 R=0;
  2614. /*[IF*/
  2615. if(r67fast_has((T67*)(oBC63visited),(T0*)C)){
  2616. }
  2617. else{
  2618. r67add_last((T67*)(oBC63visited),(T0*)C);
  2619. /*[IF*/
  2620. if(((C)->_parent_list/*40*/)!=((void*)(NULL))){
  2621. R=r78has_parent((T78*)((C)->_parent_list/*40*/),a1);
  2622. }
  2623.  else if(!(r67fast_has((T67*)(oBC63visited),r63class_any()))){
  2624. R=r63is_subclass_of_aux((T63*)(r63class_any()),a1);
  2625. }
  2626. /*FI]*/
  2627. }
  2628. /*FI]*/
  2629. return R;
  2630. }
  2631. int fBC63mem_fn=0;
  2632. T0*oBC63mem_fn=NULL;
  2633.  
  2634.  
  2635. T0* r63mem_fn(void){
  2636. if(fBC63mem_fn==0){
  2637. fBC63mem_fn=1;
  2638. {T148*n=malloc(sizeof(*n));
  2639. *n=M148;
  2640. r148make(n,((T0*)ms63_5012),NULL);
  2641. oBC63mem_fn=(T0*)n;
  2642. }
  2643. }
  2644. return oBC63mem_fn;}
  2645.  
  2646.  
  2647. void r63set_parent_list(T63* C,T0* a1,T0* a2,T0* a3){
  2648. {T78*n=malloc(sizeof(*n));
  2649. *n=M78;
  2650. r78make(n,(T0*)C,a1,a2,a3);
  2651. C->_parent_list=(T0*)n;
  2652. }
  2653. }
  2654. /*No:BASE_CLASS.first_parent_for*/
  2655.  
  2656.  
  2657. T6 r63has_creation(T63* C,T0* a1){
  2658. T6 R=0;
  2659. T0* _cn=NULL;
  2660. T0* _bc=NULL;
  2661. T0* _cc=NULL;
  2662. /*[IF*/
  2663. if(((C)->_creation_clause_list/*44*/)==((void*)(NULL))){
  2664. /*[IRF3.6append*/{T0* b1=((T64*)((C)->_name/*24*/))->_to_string/*0*/;
  2665. r7append((T7*)(oBC21explanation),b1);
  2666. }/*]*/
  2667. /*[IRF3.6append*/{T0* b1=((T0*)ms63_35976);
  2668. r7append((T7*)(oBC21explanation),b1);
  2669. }/*]*/
  2670. r21add_position(X83start_position(a1));
  2671. r21print_as_error((T21*)(oBC12eh));
  2672. }
  2673. else{
  2674. _cc=r74get_clause((T74*)((C)->_creation_clause_list/*44*/),a1);
  2675. /*[IF*/
  2676. if((_cc)==((void*)(NULL))){
  2677. /*[IRF3.6append*/{T0* b1=((T0*)ms13_7398);
  2678. r7append((T7*)(oBC21explanation),b1);
  2679. }/*]*/
  2680. /*[IRF3.6append*/{T0* b1=X83to_string(a1);
  2681. r7append((T7*)(oBC21explanation),b1);
  2682. }/*]*/
  2683. /*[IRF3.6append*/{T0* b1=((T0*)ms63_72954);
  2684. r7append((T7*)(oBC21explanation),b1);
  2685. }/*]*/
  2686. /*[IRF3.6append*/{T0* b1=((T64*)((C)->_name/*24*/))->_to_string/*0*/;
  2687. r7append((T7*)(oBC21explanation),b1);
  2688. }/*]*/
  2689. r63error(X83start_position(a1),((T0*)ms13_47));
  2690. }
  2691. else{
  2692. R=1;
  2693. _bc=X83origin_base_class(a1);
  2694. /*[IF*/
  2695. if((_bc)!=((void*)(NULL))){
  2696. _cn=(((T63*)_bc))->_name/*24*/;
  2697. R=r101gives_permission_to((T101*)((((T75*)_cc))->_clients/*4*/),_cn);
  2698. }
  2699. /*FI]*/
  2700. }
  2701. /*FI]*/
  2702. }
  2703. /*FI]*/
  2704. /*[IF*/
  2705. if(!(R)){
  2706. r63error(X83start_position(a1),((T0*)ms63_44356));
  2707. }
  2708. /*FI]*/
  2709. return R;
  2710. }
  2711.  
  2712.  
  2713. T0* r63expanded_initializer(T63* C,T0* a1){
  2714. T0* R=NULL;
  2715. /*[IF*/
  2716. if(((C)->_creation_clause_list/*44*/)!=((void*)(NULL))){
  2717. R=r74expanded_initializer((T74*)((C)->_creation_clause_list/*44*/),a1);
  2718. }
  2719. /*FI]*/
  2720. return R;
  2721. }
  2722.  
  2723.  
  2724. T6 r63proper_has(T63* C,T0* a1){
  2725. T6 R=0;
  2726. R=r92has((T92*)((C)->_feature_dictionary/*60*/),X83to_key(a1));
  2727. return R;
  2728. }
  2729.  
  2730.  
  2731. void r63add_index_clause(T63* C,T0* a1){
  2732. /*[IF*/
  2733. if(((C)->_index_list/*8*/)==((void*)(NULL))){
  2734. {T321*n=malloc(sizeof(*n));
  2735. *n=M321;
  2736. /*[IRF3.3make*/((((T321*)(n)))->_list)=(se_ma322(1,
  2737. a1));
  2738. /*]*/
  2739. C->_index_list=(T0*)n;
  2740. }
  2741. }
  2742. else{
  2743. /*[IRF3.5add_last*/r322add_last(((T322*)(((T321*)((C)->_index_list/*8*/))->_list/*0*/)),a1);
  2744. /*]*/
  2745. }
  2746. /*FI]*/
  2747. }
  2748. /*No:BASE_CLASS.is_generic*/
  2749. /*No:BASE_CLASS.isom*/
  2750.  
  2751.